前言:
现在同学们对“年历c语言”大致比较注意,看官们都想要剖析一些“年历c语言”的相关文章。那么小编在网络上汇集了一些有关“年历c语言””的相关知识,希望朋友们能喜欢,姐妹们快快来学习一下吧!整个任务分解为以下四个函数:
int daysofmonth(int m); //每月的天数
int firstday(int y); //某年元旦(1月1号)是星期几
void printhead(int m); //打印每月的日历头(判定起始位置)
void printmonth(int m); //打印每月日历
以下代码可以求出某年元旦(1月1号)是星期几:
int w = y-1+(y-1)/4-(y-100)/100+(y-1)/400 ;
return w%7;
全部代码:
输出:
附代码:
#include <stdio.h> #include <stdlib.h> #include <math.h> void printmonth(int m); //打印每月日历 void printhead(int m); //打印每月的日历头(判定起始位置) int daysofmonth(int m); //每月的天数 int firstday(int y); //判断某年元旦(1月1号)是星期几 int year,weekday; int main() { int i; printf("请输入年份:"); scanf("%d",&year); weekday=firstday(year); printf("\n\n"); printf(" %d年\n",year); for(i=1;i<=12;i++) { printmonth(i); printf("\n"); } printf("\n\n"); system("pause"); return 0; } void printmonth(int m) //打印每月日历 { int i,days; printhead(m); days=daysofmonth(m); for(i=1;i<=days;i++) { printf("%5d",i); weekday=(weekday+1)%7; if (weekday==0) printf("\n "); } } void printhead(int m) //打印每月的日历头(判定起始位置) { int i; printf("\n%d月 日 一 二 三 四 五 六\n",m); printf(" "); for(i=0;i<weekday;i++) printf(" "); } int daysofmonth(int m) //每月的天数 { switch (m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:return 31; case 4: case 6: case 9: case 11:return 30; case 2: { if (((year%4==0 && year%100!=0)||year%400==0)) return 29; else return 28; } default: return 0; } } int firstday(int y) //判断某年元旦(1月1号)是星期几 { int w = y-1+(y-1)/4-(y-100)/100+(y-1)/400 ; return w%7; }
-End-
标签: #年历c语言