matlab 日历仿真,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

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 日历仿真,matlab绘制实用日历实例代码_第1张图片

原文:http://www.cnblogs.com/sytu/p/4294481.html

你可能感兴趣的:(matlab,日历仿真)