输入某年某月某日,判断这一天是某年的第几天?
本程序评价,本人觉得本程序过于繁杂。这是在自学 C Primer Plus过程写的,等自学完了之后,会用其他方法来优化。
1 /*程序4:输入某年某月某日,判断这一天是这一年的第几天? */ 2 3 #include<stdio.h> 4 #include<conio.h> 5 6 void main() 7 { 8 int year,month,day,number; 9 REDO: 10 printf("输入年月日\"年-月-日\",然后按enter下一步\n"); 11 scanf("%d-%d-%d",&year,&month,&day); 12 if(month<=12&&month>=1&&day>=1&&day<=31) 13 { 14 if(year%400==0||(year%4==0&&year%100!=0)) 15 { 16 if(month==1) 17 { 18 printf("这一天是%d年中的第%d天\n",year,day); 19 } 20 else if(month==2) 21 { 22 printf("这一天是%d年中的第%d天\n",year,day+31); 23 } 24 else if(month>2) 25 { 26 if(month<=7&&month%2==0) 27 { 28 day=month/2*31+day+(month/2-1)*30-1; 29 printf("这一天是%d年中的第%d天\n",year,day); 30 } 31 else if (month<=7&&month%2==1) 32 { 33 day=(month-1)/2*31+(month-1)/2*30+day-1; 34 printf("这一天是%d年中的第%d天\n",year,day); 35 } 36 if (month>7&&month%2==0) 37 { 38 day=(month-8)/2*31+(month-8)/2*30+day; 39 day=day+31+29+31+30+31+30+31; 40 printf("这一天是%d年中的第%d天\n",year,day); 41 } 42 else if(month>7&&month%2==1) 43 { 44 if(month==9) 45 { 46 day=31+day; 47 } 48 else if(month==11) 49 { 50 day=31+30+31+day; 51 } 52 day=day+31+29+31+30+31+30+31; 53 printf("这一天是%d年中的第%d天\n",year,day); 54 } 55 } 56 } 57 else 58 { 59 if(month==1) 60 { 61 printf("这一天是%d年中的第%d天\n",year,day); 62 } 63 else if(month==2) 64 { 65 printf("这一天是%d年中的第%d天\n",year,day+31); 66 } 67 else if(month>2) 68 { 69 if(month<=7&&month%2==0) 70 { 71 day=month/2*31+day+(month/2-1)*30-2; 72 printf("这一天是%d年中的第%d天\n",year,day); 73 } 74 else if (month<=7&&month%2==1) 75 { 76 day=(month-1)/2*31+(month-1)/2*30+day-2; 77 printf("这一天是%d年中的第%d天\n",year,day); 78 } 79 if (month>7&&month%2==0) 80 { 81 day=(month-8)/2*31+(month-8)/2*30+day; 82 day=day+31+28+31+30+31+30+31; 83 printf("这一天是%d年中的第%d天\n",year,day); 84 } 85 else if(month>7&&month%2==1) 86 { 87 if(month==9) 88 { 89 day=31+day; 90 } 91 else if(month==11) 92 { 93 day=31+30+31+day; 94 } 95 day=day+31+28+31+30+31+30+31; 96 printf("这一天是%d年中的第%d天\n",year,day); 97 } 98 } 99 } 100 } 101 else 102 { 103 printf("输入年月日有误或者输入的格式不对,请重新运行输入"); 104 goto REDO; 105 } 106 getch(); 107 }