#include <stdio.h> #include <stdlib.h> #include <string.h> void is_leap(int ); void total_day(int ,int ,int); int week(int ,int ,int ); void displays_week(int ,int ,int); void display_month(int ,int,int); int months[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int fale = 0; void is_leap(int year){ if (0==year%4 && year%100!=0 ||0==year%400){ printf("%d is leap\n",year); fale = 1; }else{ printf("%d is not leap\n",year); } } void total_day(int year,int month,int day){ if (fale==1){ months[1]+=1; } int days=0; for (int i=0;i<month-1;i++){ days+=months[i]; } days+=day; printf("%d-%d is %d for %d\n ",month,day,days,year); } int week(int year,int month,int day){ int y=year; int m=month; int d=day; if (month==2 || month==1){ m+=12; y-=1; } int weak=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7; return weak; } void displays_week(int year,int month,int day){ int weak= week(year,month,day); switch(weak){ case 0: printf("%d %d %d is 星期天\n",year,month,day); break; case 1: printf("%d %d %d is 星期一\n",year,month,day); break; case 2: printf("%d %d %d is 星期二\n",year,month,day); break; case 3: printf("%d %d %d is 星期三\n",year,month,day); break; case 4: printf("%d %d %d is 星期四\n",year,month,day); break; case 5: printf("%d %d %d is 星期五\n",year,month,day); break; case 6: printf("%d %d %d is 星期六\n",year,month,day); break; } } void display_month(int year,int month ,int day) { printf("\t\t\t%d %d %d\n", year, month, day); printf("日\t一\t二\t三\t四\t五\t六\n"); int weak = week(year, month, 1); for (int i = 0; i < weak; i++) { printf("\t"); } for (int i = 1; i <= months[month - 1]; i++) { if (day == i) { printf("\033[32m"); printf("%d\t", i); printf("\033[0m"); } else { printf("%d\t", i); } int weaks = week(year, month, i); if (6 == weaks) { putchar('\n'); } } putchar('\n'); } int main(){ int year,month,day; scanf("%d%d%d",&year,&month,&day); is_leap(year); total_day(year,month,day); displays_week(year,month,day); display_month(year,month,day); }
calendar
最新推荐文章于 2024-07-22 22:46:35 发布