不使用内置函数,使用matlab语言编写万年历代码
时间: 2024-04-10 12:33:38 浏览: 27
好的,下面是使用MATLAB编写的一个万年历代码示例,不使用内置函数:
```matlab
function printCalendar(year)
daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
weekDays = {'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'};
monthNames = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'};
for month = 1:12
disp([monthNames{month} ' ' num2str(year)]);
disp('Sun Mon Tue Wed Thu Fri Sat');
% 计算给定年份1月1日是星期几
firstDay = mod((year-1)*365 + fix((year-1)/4) - fix((year-1)/100) + fix((year-1)/400) + 1, 7);
% 判断是否为闰年,修改2月天数
if isLeapYear(year)
daysInMonth(2) = 29;
else
daysInMonth(2) = 28;
end
% 打印月份前的空格
for i = 1:firstDay
fprintf(' ');
end
day = 1;
% 打印日期
for i = firstDay:6
fprintf('%3d ', day);
day = day + 1;
end
fprintf('\n');
% 打印剩余日期
while day <= daysInMonth(month)
for i = 1:7
if day <= daysInMonth(month)
fprintf('%3d ', day);
day = day + 1;
else
fprintf(' ');
end
end
fprintf('\n');
end
fprintf('\n');
end
end
function leapYear = isLeapYear(year)
leapYear = mod(year, 4) == 0 && (mod(year, 100) ~= 0 || mod(year, 400) == 0);
end
year = input('请输入年份:');
printCalendar(year);
```
这个MATLAB程序实现了一个万年历。它使用了一个`printCalendar`函数来打印给定年份的每个月的日历。在函数中,首先计算了给定年份的1月1日是星期几,并根据是否为闰年来修改2月的天数。然后使用循环打印出每个月的日历,以星期几为起始,并按照每周7天的格式排列。此外,还定义了一个`isLeapYear`函数来判断是否为闰年。在主程序中,它会要求用户输入一个年份,并调用`printCalendar`函数来打印该年的万年历。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)