matlab绘制实用日历实例代码

function TheStudy;%函数名
close all;%关闭所有床头
DD={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'};%日历表头文字
figure;%打开一个窗口
%绘制窗口中的图标
uicontrol(gcf,'style','text','unit','normalized','position',[0.12,0.9,0.4,0.08],...
'ForegroundColor',[0.4,0.9,0.8],'BackgroundColor',[0.3,0.4,0.4],'fontsize',21,'String','The Calendar');
td=uicontrol(gcf,'style','push','unit','normalized',...
'position',[0.22,0.1,0.5,0.1],'fontname','default',...
'fontsize',18,'ForegroundColor',0.6*[1,1,1],'BackgroundColor','r');
%绘制日历的表头
for k=1:7
uicontrol(gcf,'style','text','unit','normalized',...
'position',[0.02+k*0.1,0.7,0.08,0.06],'fontsize',18,...
'ForegroundColor','r','BackgroundColor','b','String',DD{k});
end
%取出现在时间的字符串
timestr=datestr(now);
%时间付给年 月 日
[y,m,d]=datevec(timestr);
%本月的总天数
last=eomday(y,m);
%---------
%以下四行为求月初是星期几的算法。
%总结出来的规律
%假设目前为星期 x(1<=x<=7),日期号为d.
%得y=x+1+7-rem(d,7);
%∴本月初为星期z=rem(y,7)+1;
number_week=weekday(timestr);
remvalue=rem(d,7);
number_week=number_week+7-remvalue;
number_week=rem(number_week,7)+1; row=0;
total_num=0;%记录画上图标的天数,不超过本月总天数(last)
bc='b';
while total_num<last
total_num=total_num+1;
if total_num==d
bc='r';
else
bc='w';
end
uicontrol(gcf,'style','push','ForegroundColor',bc,'BackgroundColor',0.4*[1,1,1],...
'String',num2str(total_num),'fontsize',18,'fontname','default','unit','normalized',...
'position',[0.02+number_week*0.1,0.6-row*0.08,0.08,0.06]);
if number_week==7
row=row+1;
number_week=1;
else
number_week=number_week+1;
end
end
try%循环显示当前时间
while 1
[y,m,d,h,mi,s]=datevec(datestr(now));
set(td,'String',[datestr(now,2),' ',datestr(now,13)]);
pause(1);
end
end

  执行结果:

matlab绘制实用日历实例代码

上一篇:table行颜色设置


下一篇:matlab文件读写处理实例(一)——不规则文件读取