
日期与(某年)天数的相互转换
源代码
int (int list[],int mon,int day) { for(mon;mon>0;--mon) day+=list[mon-1]; return day; }
void switch_2(int list[],int day) { int i,mon; for(i=0;i<13;++i){ day-=list[i]; if(day<=list[i+1]){ mon=i+1; break; } } printf("%d月%d日",mon,day); }
void main() { int choice; printf("which cases do you want?n1.日期转换成天数n2.指定年份的天数求日期n"); scanf("%d",&choice); int year,day,mon; while(1){ printf("inter a yearn"); scanf("%d",&year); if(year>0) break; } int a; if((year%4==0&&year%100!=0)||year%400==0) a=29; else a=28; int list[] = {0,31,a,31,30,31,30,31,31,30,31,30,31}; if(choice==1) { while(1){ printf("inter a monthn"); scanf("%d",&mon); if(mon>0&&mon<=12) break; } } while(1){ printf("inter a dayn"); scanf("%d",&day); if(day>0) break; } if(choice==1){ int D = switch_1(list,mon,day); printf("%d年第%d天n",year,D); }
else switch_2(list,day); }
|
效果演示

