本
文
摘
要
2018元旦快乐呀!
作者在这跟大家说声新年快乐啦!
大家记得晚上一定记得看春节联欢晚会哟,嘿嘿~
今天就教大家如何打印年历吧,效果(运行)图可根据程序分析或自己运行查看。
本次需要解决的问题是打印年历,大致可以把问题化为3个部分:
第一部分:
输入年份,判断是平年还是闰年。可以使用表达式year%4==0&&year%100!=0||year%400==0来判断闰年。
第二部分:
确定这一年的元旦是星期几。已知1900年的元旦是星期一,所以year的星期几可以根据下列方法计算:
n=year-1900; //相差了n年
n=n+(n-1)/4+1; //n年多n天,(n-1)/4个闰年数,再加上1900年的星期序号
n=n/7; //求出最后的星期数
第三部分:
输出月份与天数,这里需要确定当月第一天的星期以及当月的天数,然后打印,每7天以及一个月输出一次回车。
具体代码如下:
#include"stdio.h" #define YES 1 #define NO 0 int isleap(int year) { int leap=NO; if(year%1==0&&year%100!=0||year%400==0) { leap=YES; } return leap; } int week_of_newyears_day(int year) { int n=year-1900; n+=(n-1)/4+1; n=n%7; return n; } main() { int year,month,day,weekday,len_of_month,i; printf("\nPlease input year:"); scanf("%d",&year); /*-------------打印年历-------------------------*/ printf("\n\n\n %d\n",year); weekday=week_of_newyears_day(year); for(month=1;month<=12;month=month+1) { printf("\n%d月\n",month); printf("---------------------------\n"); printf("SUN MON TUE WEN THU FRI SAT\n"); printf("---------------------------\n"); for(i=0;i<weekday;i=i+1) { printf(" "); } if(month==4||month==6||month==9||month==11) { len_of_month=30; } else if (month==2) { if(isleap(year)) { len_of_month=29; } else len_of_month=28; } else len_of_month=31; for(day=1;day<=len_of_month;day++) { printf(" %2d ",day); weekday = weekday+1; if(weekday==7) { weekday=0; printf("\n"); } } printf("\n"); } }更多今年元旦日历图片(今年元旦日历表图片)相关信息请关注本站,本文仅仅做为展示!