#include"stdio.h"
#include"stdlib.h"
intmain()
{
intday,month,year,sum,leap
printf("\npleaseinputyear,month,day\n")
scanf("%d,%d,%d",&year,&month,&day)
switch(month)/*先计算某月以前月份的总天数*/
{
case1:sum=0break
case2:sum=31break
case3:sum=59break
case4:sum=90break
case5:sum=120break
case6:sum=151break
case7:sum=181break
case8:sum=212break
case9:sum=243break
case10:sum=273break
case11:sum=304break
case12:sum=334break
default:printf("dataerror\n")break
}
sum=sum+day/*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
{
leap=1
}
else
{
leap=0
}
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
{
sum++
}
printf("Itisthe%dthday.\n",sum)
return0
}
扩展资料
C语言输晌档入任意一个日期的年、月、日宴改乱的值,求出是星期几并输出。
#include<stdio.h>
voidmain()
{
inty,m,d,c,s,w
printf("请输入8位年月日,以空格隔开:")
scanf("%d%d%d",&y,&m,&d)
if(m==1)c=d
elseif(m==2)c=31+d
elseif(m==3)c=31+28+d
elseif(m==4)c=31+28+31+d
elseif(m==5)c=31+28+31+30+d
elseif(m==6)c=31+28+31+30+31+d
elseif(m==7)c=31+28+31+30+31+30+d
elseif(m==8)c=31+28+31+30+31+30+31+d
elseif(m==9)c=31+28+31+30+31+30+31+31+d
elseif(m==10)c=31+28+31+30+31+30+31+31+30+d
elseif(m==11)c=31+28+31+30+31+30+31+31+30+31+d
elseif(m==12)c=31+28+31+30+31+30+31+31+30+31+30+d
if(m>2)
{if(y%100==0){if(y%400==0)c=c+1}
elseif(y%4==0)c=c+1}
s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c
w=s%7
switch(w)
{
case0:printf("星期日")break
case1:printf("星期一")break
case2:printf("星期二")break
case3:printf("星期三")break
case4:printf("星期四")break
case5:printf("星期五歼芦")break
case6:printf("星期六")break
printf("\n")
}
}
不明白你的问题谨桐,我测试是正确的。如
2012 2 1
30
结果输出
2012 3 2
是正运胡确祥悄坦的啊!!!没有闰年或二月的问题
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)