永发信息网

编写c语言万年历程序 要求输入能够查询任意年份的日历或某年某月的月历或者查询某天是星期几

答案:1  悬赏:0  手机版
解决时间 2021-02-08 18:05
编写c语言万年历程序 要求输入能够查询任意年份的日历或某年某月的月历或者查询某天是星期几
最佳答案
#include
#include
#include
long year;
int month,day,error_input;
char s[100];
int monthdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};
void inputdate(){
long n[3]={0,0,0},k=0,i,len;
error_input=-1;
printf("Please input the year[,month[,day]]:(Enter Q to quit)\n");
gets(s);
len=strlen(s);
printf("%d\n",strcmp(s,"Q"));
if(strcmp(s,"Q")==0) {error_input=0;return;}

if(!isdigit(s[0])||!isdigit(s[len-1]))
{error_input=1;return;}
for(i=0;iif(!isdigit(s[i])) {if(isdigit(s[i-1])) k ;if(k>2) {error_input=1;return;}}
else n[k]=n[k]*10 s[i]-48;
}
year=n[0];
if(!(year%4)&&(year0)||!(year@0))
monthdays[1]=29;
else
monthdays[1]=28;
if(n[1]>12) {error_input=1;return;}
if(n[2]>monthdays[n[1]-1]) {error_input=1;return;}
month=n[1];
day=n[2];
}
void printCala(){
int countyear,countday=0,weekflag,i,j,k,c;
int startmon,endmon,year1;
year1=year-1;
countyear=(year1-year1%4)/4-(year1-year10)/100 (year1-year1@0)/400;

weekflag=(countyear*366 (year-1-countyear)*365 1)%7-1;
if(month==0) {startmon=1;endmon=12;}
else {startmon=month;endmon=month;}
for(k=1;kweekflag=(weekflag monthdays[k-1])%7;
for(k=startmon;k<=endmon;k )
{
printf("\n %ld year",year);
switch(k)
{
case 1: printf("January\n");break;
case 2: printf("February\n");break;
case 3: printf("March\n");break;
case 4: printf("April\n");break;
case 5: printf("May\n");break;
case 6: printf("June\n");break;
case 7: printf("July\n");break;
case 8: printf("August\n");break;
case 9: printf("September\n");break;
case 10: printf("October\n");break;
case 11: printf("November\n");break;
case 12: printf("December\n");break;
}
printf("___________________________\n");
printf("Sun Mon Tue Whe Thr Fri Sat\n");
if(weekflag!=0)
for(countday=0,j=0;j{printf("");
countday ;}
for(i=1;i<=monthdays[k-1];i )
{if(countday>0&&countday%7==0)
printf("\n");
printf("=",i);
countday ;}
weekflag=(weekflag monthdays[k-1])%7;
printf("\n___________________________\n");
}
}
int main()
{
inputdate();
while(error_input!=0)
{
if(error_input==1)
printf("Input ERROR! Please input again:\n");
else
printCala();
inputdate();
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天河旅馆(康富市场街)地址有知道的么?有点事
惠普g3028cx用U盘做系统吗?
以下诊断措施哪项无特异性A.盆腔B超B.子宫输
夫妻甩饼店地址有知道的么?有点事想过去
新疆众志学校小学就读怎么样
秀明酒店地址在什么地方,我要处理点事
为什么有些酒店的入住时间为下午3点之后,退
鸿帝宾馆地址好找么,我有些事要过去
自己有份固定的职业,想找个兼职,大家觉得做
铢家厂宾馆怎么去啊,我要去那办事
UCC国际洗衣东站街店我想知道这个在什么地方
岳塘区湘潭海尔集成吊顶地址在哪,我要去那里
易乐居假日酒店怎么去啊,我要去那办事
中国联通舜华北路营业厅在哪里啊,我有事要去
石油股票多少钱一股
推荐资讯
在填筑排水反滤层前,应对坝基覆盖层进行试验
恒英日化批发地址有知道的么?有点事想过去
费雷罗和费列罗两种巧克力有什么不同
种的一年生盆栽一年后死了怎么办
歌词有一句嗨v够的歌名
白马镇在哪里啊,我有事要去这个地方
中国联通华丰手机大卖场地址在什么地方,想过
用pspice仿真电路图的截图和仿真后的结果
建昌工程质量检测中心公司地址在什么地方,想
牙克石市铭远装饰材料商店在什么地方啊,我要
ebay的DSR太低被限制怎么办
求湿毒血瘀痤疮痤疮的药方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?