上课作业MATLAB不成熟版本(加了测试单元但是没有数据筛选功能)
%%%%%%输入一个年月日,输出下一天
%day 日
%month 月
%year 年
%未做数据处理(之后改进)
%% 清空变量
clc
clear
%% 输入测试
day = 28;
month = 2;
year = 2019;
date_old = [year,month,year];%测试年份2019,2,28
%% 生成年份天数表
maxday=[31,28,31,30,31,30,31,31,30,31,30,31;
31,29,31,30,31,30,31,31,30,31,30,31];%第一行平年,第二行闰年
%% 判断年份是否为闰年
if ((mod(year,4)==0)&&(mod(year,100)~=0))||(mod(year,400)==0)
date = 2;
else
date = 1;
end
%% 判断最后一天
if day<maxday(date,month)
day = day +1;
else
day = 1;
if month == 12
month =1;
year =year +1;
else
month = month+1;
end
end
%% 输出新的年月日
date_new =[year,month,day];
%%%%%%%%%
%%%%%%输入一个年月日,输出下一天
%day 日
%month 月
%year 年
%未做数据处理(之后改进)
%% 清空变量
clc
clear
%% 输入测试
%% 1平年2月28日
day(1,1)= 28;
month(1,1) = 2;
year(1,1) = 2019;
%% 2闰年2月28日
day(2,1) = 28;
month(2,1) = 2;
year(2,1) = 2016;
%% 3闰年2月29日
day(3,1) = 29;
month(3,1) = 2;
year(3,1) = 2016;
%% 4平年任意一天的下一天(不跨越月份,不跨年)
day(4,1) = 3;
month(4,1) = 1;
year(4,1) = 2001;
%% 5平年任意一天的下一天(跨越月份,不跨年)
day(5,1) = 31;
month(5,1) = 1;
year(5,1) = 2001;
%% 6平年任意一天的下一天(跨越月份,跨年)
day(6,1) = 31;
month(6,1) = 12;
year(6,1) = 2001;
%% 7平年任意一天的下一天(不跨越月份,不跨年)
day(7,1) = 3;
month (7,1)= 1;
year(7,1) = 2000;
%% 8平年任意一天的下一天(跨越月份,不跨年)
day(8,1) = 31;
month(8,1) = 1;
year(8,1) = 2000;
%% 9平年任意一天的下一天(跨越月份,跨年)
day(9,1) = 31;
month(9,1) = 12;
year(9,1)= 2000;
%% 具体天数
date_old = [year,month,day];%测试年份2019,2,28
%% 生成年份天数表
maxday=[31,28,31,30,31,30,31,31,30,31,30,31;
31,29,31,30,31,30,31,31,30,31,30,31];%第一行平年,第二行闰年
%% 判断年份是否为闰年
for i=1:9
if ((mod(year(i,1),4)==0)&&(mod(year(i,1),100)~=0))||(mod(year(i,1),400)==0)
date = 2;
else
date = 1;
end
%% 判断最后一天
if day(i,1)<maxday(date,month)
day_new(i,1) = day(i,1) +1;
month_new(i,1) = month(i,1);
year_new(i,1) = year(i,1);
else
day_new(i,1) = 1;
if month(i,1) == 12
month_new(i,1) =1;
year_new(i,1) =year(i,1) +1;
else
month_new(i,1) = month(i,1)+1;
year_new(i,1) = year(i,1);
end
end
end
%% 输出新的年月日
date_new =[year_new,month_new,day_new];
duibi = [date_old,date_new];