求C语言编日历源代码的详细说明
答案:1 悬赏:10 手机版
解决时间 2021-10-14 11:14
- 提问者网友:回忆在搜索
- 2021-10-13 19:42
求C语言编日历源代码的详细说明
最佳答案
- 五星知识达人网友:掌灯师
- 2021-10-13 20:03
#include <stdio.h> #include<conio.h> #include<stdlib.h> int IsLeapYear(int); //函数定义void main() { int i; int day; int year; int temp; int temp_i; long int Year_days = 0; int Year_Start = 1; int Per_Year_Days; int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29}; printf("Please enter the year: "); scanf("%d",&year); //输入年份while(Year_Start < year) //从公元1年开始执行while循环, 该年的一月一号为星期一{ if( IsLeapYear( Year_Start ) ) Per_Year_Days = 366; //如果是闰年, 则一年有366天else Per_Year_Days = 365; //如果不是闰年, 则一年有365天Year_days = Year_days + Per_Year_Days; //Year_days为从公元1年到输入年份的前一年的天数的总和Year_Start++; } for( temp = 1; temp <=12; temp++ ) //temp从1到12, 对应一年内12个月{ switch( temp ) //用switch语句将temp和12个月对应起来{ case 1: printf(" January(%d)\n",year); //一月break; case 2: printf(" February(%d)\n",year); //二月break; case 3: printf(" March(%d)\n",year); //三月break; case 4: printf(" April(%d)\n",year); //四月break; case 5: printf(" May(%d)\n",year); //五月break; case 6: printf(" June(%d)\n",year); //六月break; case 7: printf(" July(%d)\n",year); //七月break; case 8: printf(" August(%d)\n",year); //八月break; case 9: printf(" September(%d)\n",year); //九月break; case 10: printf(" October(%d)\n",year); //十月break; case 11: printf(" November(%d)\n",year); //十一月break; case 12: printf(" December(%d)\n",year); //十二月break; } i = Year_days % 7; //每个星期有7天, 故用每年的天数对7取余printf("Mon\tTue\tWed\tThu\tFri\tSat\tSun\n"); if( i != 0 ) //如果余数不为零for( temp_i = 0; temp_i < i; temp_i++) printf("\t"); //则打印空格(这里用\t代替空格, 更加美观), 空格数为iday = 1; //初始化day为1, 为下面的while循环做准备if( IsLeapYear(year) && temp == 2) //如果输入的年份是闰年, 并且月份为2while( day <= month_day[12] ) //day为一循环变量, 取值为1-365(闰年的话为1-366){ if( day >1 ) //如果天数大于一if( Year_days % 7 == 0 ) //如果是星期日, 则换行printf("\n"); if( day >= 10 ) printf("%d\t",day); //打印天数+空格else printf("%d\t",day); Year_days++; day++; } else //如果不满足"输入的年份是闰年, 并且月份为2"while (day <= month_day[temp-1]) { if( day > 1 ) if( Year_days % 7 == 0 ) printf("\n"); if( day >=10 ) printf("%d\t",day); else printf("%d\t",day); Year_days++; day++; } printf("\n"); if( getch() == 'q' ) //如果输入为q, 则退出程序exit(0); } getch(); //每按一次键, 打印一个月份} int IsLeapYear( int year ) { //判断是否是闰年, 是则返回1, 否则返回0if ((year %4 == 0) && (year % 100 != 0) || (year % 400 == 0) ) return 1; else return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯