1. 任意给定某年某月某日,打印出它是这一年的第几天
2. 已知某一年的第几天,计算它是这一年的几月几日。
#include#include int DayofYear(int year, int month, int day); void Monthday(int year, int yearDay, int *pMonth, int *pDay); void Menu(void); static int dayTab[2][13] = {{0,31,28,31,30,31,30,31,30,31,30,31,30},{0,31,29,31,30,31,30,31,30,31,30,31,30}}; int main(void) { int year, month, day, yearDay, choice; Menu(); scanf("%d", &choice); switch(choice) { case 1: printf("请输入年,月,日:"); scanf("%d,%d,%d", &year, &month, &day); yearDay = DayofYear(year, month, day); printf("这是%d年的第%d天!", year, yearDay); break; case 2: printf("请输入年份及该年的第几天:"); scanf("%d,%d", &year, &yearDay); Monthday(year, yearDay, &month, &day); printf("这是%d年%d月%d日!", year, month, day); break; case 3: exit(0); default: printf("输入错误!"); } return 0; } int DayofYear(int year, int month, int day) { int i, leap; leap = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);//判断leap = 1 || leap = 0 for(i = 1; i < month; i++) { day = day + dayTab[leap][i]; } return day; } void Monthday(int year, int yearDay, int *pMonth, int *pDay) { int i,leap; leap = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0); for(i = 1; yearDay > dayTab[leap][i]; i++) { yearDay = yearDay - dayTab[leap][i]; } *pMonth = i; *pDay = yearDay; } //显示一个固定式的菜单 void Menu(void) { printf("1. 年,月,日 --> 是某年的多少天n"); printf("2. 某年的多少天 --> 年,月,日n"); printf("3. Exitn"); printf("请输入你想用的功能:"); }



