function xingqi=f(x,y,z)
clc
x1=[ 31 59 90 120 151 181 212 243 273 304 334 365]; %平年前N月天数和
x2=[ 31 60 91 121 152 182 213 244 274 305 335 366];%闰年前N月天数和
x=[2000:1:2100];%2000到2100年
a=( mod(x,400)==0 | mod(x,100)~=0 & mod(x,4)==0);%a=1闰年,a=0平年
sum(a);%2000年到x年共几个闰年
if
a==0&y~=1 %平年不是一月
sum=365*(x-2000)+x1(y-1)+z+sum(a); %总天数
elseif a==0&y=1 %平年是一月
sum=365*(x-2000)+z+sum(a); %总天数
elseif a==1&y==1 %闰年一月
sum=365*(x-2000)+z+sum(a)-1; %总天数
else sum=365*(x-2000)+x2(y-1)+z+sum(a)-1;%闰年不是一月
xingqi=mod(sum+6,7);
end
不知道你只是想要这个功能,还是想自己写个算法来练习下,如果是前者,就不要重复造轮子了。Matlab早已提供了内置函数。
假设x, y, z分别表示年、月、日,则求星期几函数如下:
[index,d] = weekday(datenum([x y z]))其中index表示是一周的第几天,d则是星期几的英文表示
如:
[index,d] = weekday(datenum([2013 10 22]))刚开始接触matlab、、想自己练习练习、、编好程序不能运行、、希望能够帮忙改正一下我的原程序