久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9413|回復: 0
收起左側

C語言編寫萬年歷程序源代碼

[復制鏈接]
ID:102668 發表于 2016-1-16 05:04 | 顯示全部樓層 |閱讀模式

  1. #include<stdio.h>
  2. #include <time.h>
  3. #include<stdlib.h>
  4. #include"string.h"
  5. #include"math.h"
  6. char S[1000]={" "};//記事本存放
  7. /**********************************************************************************
  8. *                            函數聲明
  9. ***********************************************************************************/
  10. int Leap_year(int year);
  11. int Month_Day(int year,int month);
  12. int Year_Day(int year,int month,int day);
  13. int Week_Day1(int year,int month,int day);
  14. char *Week_Day2(int number);
  15. void Menu1(int year,int month,int day);
  16. void Menu2(int year,int month);
  17. int Menu3(int year,int month,int day);
  18. void Month_Display(int year,int month);
  19. void Lunar_Calendar(int year ,int month,int day);
  20. char *Festival(int month,int day);
  21. //char  *Solar_terms(char Month,char Day);
  22. void Day_Display(int year,int month,int day);
  23. void Shutdown(void );
  24. void RTC(void);
  25. void Rubbish(void);
  26. /*******************************************************************************
  27. *   函數名:閏年判斷
  28. *   入口參數:year
  29. *   返回參數:閏年返回1 否則返回0
  30. ********************************************************************************/
  31. int Leap_year(int year)/*定義變量*/
  32. {
  33. if(year%4==0&&year%100!=0||year%400==0) /*利用函數判斷輸入年份是閏年還是平年*/
  34. return 1;
  35. else
  36. return 0;
  37. }
  38. /**********************************************************************************
  39. *  函數名:月份天數確定
  40. *  入口參數:year,month
  41. *  返回參數:今年該月的天數
  42. *  調用函數:int Leap_year(int year)
  43. **********************************************************************************/
  44. int Month_Day(int year,int month)
  45. {
  46. int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*定義數組確定12個月每個月的天數*/
  47. if(Leap_year(year)) /*如果輸入年份是閏年*/
  48. a[1]=29;/*二月29天*/
  49. return a[month-1];
  50. }
  51. /*************************************************************************************
  52. *  函數名:天數查詢->查詢該天是今年的第幾天
  53. *  入口參數:year,month,day
  54. *  返回參數:該天是今年的第幾天
  55. *  調用函數:day1(int year,int month)
  56. **************************************************************************************/
  57. int Year_Day(int year,int month,int day)
  58. {
  59. int i,sum=0;
  60. for(i=1;i<month;i++)
  61. {
  62. sum+=Month_Day(year,i);
  63. }
  64. sum+=day;
  65. return sum;
  66. }
  67. /****************************************************************************************
  68. *   函數名:天數查詢->查詢該天是本周的第幾天
  69. *   入口參數:year,month,day
  70. *   返回參數:返回該天是本周的第幾天
  71. *   調用函數:day2(int year,int month,int day)
  72. ****************************************************************************************/
  73. int Week_Day1(int year,int month,int day)
  74. {
  75. int number=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;//基姆拉爾森計算公式
  76. //number%=7;
  77. return number+1;
  78. }
  79. /***********************************************************************************
  80. *  函數名:星期查詢
  81. *  入口參數:number
  82. *  返回參數:星期
  83. **********************************************************************************/
  84. char *Week_Day2(int number)
  85. {
  86. switch(number)/*分類一周七天*/
  87. {
  88. case 0:
  89. return "星期日";
  90. case 1:
  91. return "星期一";
  92. case 2:
  93. return "星期二";
  94. case 3:
  95. return "星期三";
  96. case 4:
  97. return "星期四";
  98. case 5:
  99. return "星期五";
  100. case 6:
  101. return "星期六";
  102. default:
  103. return "錯誤!請您重新輸入。";/*不符和上面七種情況的報錯提示*/
  104. }
  105. }
  106. /*****************************************************************************
  107. *   函數名:菜單1年歷查詢->輸出年,月,日,星期,節日,農歷
  108. *   入口參數:year month day
  109. *   調用函數:int week1(int year,int month,int day)
  110. *             int runnian(int year)
  111. *     char *Week2(int number)
  112. *****************************************************************************/
  113. void Menu1(int year,int month,int day)
  114. {
  115. int number=Week_Day1(year,month,day);
  116. if(Leap_year(year))printf("閏年");/*年份為閏年則輸出“閏年“*/
  117. else printf("平年");
  118. printf(" %d 年  %d 月 %d 日%10s %s",year,month,day,Week_Day2(number), Festival(month,day));/*按年 月 日輸出結果*/
  119. Lunar_Calendar( year , month,day);//輸出當前日期的農歷
  120. }
  121. /*******************************************************************************************
  122. *   函數名:菜單2月歷查詢->生成日歷格式
  123. *   入口參數:year,month
  124. *   調用函數:int day1(int year,int month)
  125. *             int week1(int year,int month,int day)
  126. *******************************************************************************************/
  127. void Menu2(int year,int month)
  128. {
  129. int max,number,i,j=1;
  130. max=Month_Day(year,month);//計算該月總天數
  131. number=Week_Day1(year,month,1);
  132. printf("%2s%2s%2s%2s%2s%2s%2s\n","  星期日 ","  星期一 ","  星期二","  星期三 "," 星期四 ","  星期五 "," 星期六 ");/*按照間隔打印日歷*/
  133. for(i=0;i<number;i++)
  134. {
  135. printf("        ");
  136. }
  137. while(j<=max)//該月的天數
  138. {
  139. printf("%8d",j);
  140.   if(i%7==6)
  141.   {
  142.    printf("\n");
  143.   }
  144. i++;
  145. j++;
  146. }
  147. printf("\n\n");
  148. }
  149. /*****************************************************************************
  150. *  函數名:菜單3日歷查詢->輸入參數檢查
  151. *  入口參數:year,month,day
  152. *  返回參數 當輸入無效時返回0 否則返回1
  153. *****************************************************************************/
  154. int Menu3(int year,int month,int day)
  155. {
  156. if(year<0||month<1||month>12||day<1||day>Month_Day(year,month))/*當輸入值出現這些情況時*/
  157. return 0;/*返回0*/
  158. else
  159. return 1;/*返回1*/
  160. }
  161. /*********************************************************************************
  162. *  函數名:年歷查詢
  163. *  入口參數:year
  164. *  調用函數:int Leap_year(int year)
  165. *********************************************************************************/
  166. void Year(int year)
  167. {
  168. int i;
  169. printf("\n");
  170. for(i=1;i<=12;i++)
  171. {
  172.   Month_Display(year,i);
  173. }
  174. }
  175. /*************************************************************************************
  176. *  函數名:月歷查詢
  177. *  入口參數:year,month
  178. *  調用函數:int Leap_year(int year)
  179. *           void x2(int year,int month)
  180. *  輸出:年月并輸出日歷格式
  181. *************************************************************************************/
  182. void Month_Display(int year,int month)
  183. {
  184. if(Leap_year(year))
  185. printf("閏年");
  186. else printf("平年");
  187. printf(" %d 年 %d 月\n\n",year,month);
  188. Menu2(year,month);
  189. }
  190. /*********************************************************************************************
  191. *   函數名:節日查詢
  192. *   入口參數:month,day
  193. *********************************************************************************************/
  194. char *Festival(int month,int day)
  195. {
  196.   switch(month)
  197.   {
  198.   case 1: if(day==1)
  199.     {  return "元旦";break;}
  200.    else
  201.       return "";
  202.   case 2: if(day==14)
  203.     {  return "情人節";break;}
  204.    else
  205.           return "";
  206.   case 3:
  207.    {
  208.     switch(day)
  209.     { case 5:  return "學雷鋒日";break;
  210.       case 8: return "婦女節";break;
  211.       case 12: return "植樹節";break;
  212.       case 15:return "消費者權益日"; break;
  213.       default:
  214.             return "";
  215.     }
  216.     break;
  217.    }
  218.   case 4:
  219.    {
  220.          switch(day)
  221.    {
  222.     case 1: return "愚人節";break;      
  223.     default:
  224.           return "";
  225.    }
  226.          break;
  227.    }
  228.   case 5:
  229.    {
  230.         switch(day)
  231.   {
  232.   case 1:return "勞動節";break;
  233.   case 4:return "青年節";break;
  234.    default:
  235.           return "";
  236.   }
  237.   break;
  238.    }
  239.   case 6:
  240.    {
  241.       switch(day)
  242.    {
  243.    case 1: return "兒童節";break;
  244.    default:
  245.       return "";
  246.    }
  247.    break;
  248.    }
  249.   case 7:
  250.    {
  251.          switch(day)
  252.    {
  253.    case 1:return "建黨節";break;
  254.       default:
  255.          return "";
  256.    }
  257.    break;
  258.    }
  259.   case 8:
  260.    {
  261.        switch(1)
  262.     {
  263.     case 1: return "建軍節";break;
  264.     default:
  265.        return "";
  266.     }
  267.     break;
  268.    }
  269.   case 9:
  270.    {
  271.     switch(day)
  272.     {
  273.     case 10:return "教師節";break;
  274.     case 18:return "九一八紀念日";break;
  275.     default:
  276.           return "";
  277.     }
  278.    }
  279.   case 10:
  280.   
  281.         switch(day)
  282.   {
  283.   case 1: return "國慶節";break;
  284.      default:
  285.         return "";
  286.   }
  287.   break;
  288.   
  289.   case 11:
  290.   
  291.        switch(day)
  292.     {
  293.        case 1: return "萬圣節";break;
  294.     case 11: return "光棍節";break;
  295.        default:
  296.        return "";
  297.     }
  298.     break;
  299.   
  300.   case 12:
  301.   
  302.       switch(day)
  303.    {
  304.    case 24: return "平安夜";break;
  305.    case 25: return "圣誕節";break;
  306.     default:
  307.           return "";
  308.    }
  309.    break;
  310. default:
  311. return "錯誤!請您重新輸入。";
  312.   }
  313. }
  314. /*************************************************************************************
  315. *   函數名:農歷查詢
  316. *   入口參數:year,month,day
  317. *   調用函數:
  318. *************************************************************************************/
  319. void Lunar_Calendar(int year ,int month,int day)
  320. {
  321. /*天干名稱*/
  322. const char *cTianGan[] = {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
  323. /*地支名稱*/
  324. const char *cDiZhi[] = {"子","丑","寅","卯","辰","巳","午",
  325. "未","申","酉","戌","亥"};
  326. /*屬相名稱*/
  327. const char *cShuXiang[] = {"鼠","牛","虎","兔","龍","蛇",
  328. "馬","羊","猴","雞","狗","豬"};
  329. /*農歷日期名*/
  330. const char *cDayName[] = {"*","初一","初二","初三","初四","初五",
  331. "初六","初七","初八","初九","初十",
  332. "十一","十二","十三","十四","十五",
  333. "十六","十七","十八","十九","二十",
  334. "廿一","廿二","廿三","廿四","廿五",
  335. "廿六","廿七","廿八","廿九","三十"};
  336. /*農歷月份名*/
  337. const char *cMonName[] = {"*","正","二","三","四","五","六",
  338. "七","八","九","十","十一","臘"};
  339. /*公歷每月前面的天數*/
  340. const int wMonthAd[12] = {0,31,59,90,120,151,181,212,243,273,304,334};
  341. /***************************************************************
  342. *農歷數據計算方式:用十進制保存
  343. *例如:1、農歷每個月的大小;2、今年是否有閏月,閏幾月以及閏月的大小。
  344. 用一個整數來保存這些信息就足夠了。具體的方法是:用一位來表示一個月的大
  345. 小,大月記為1,小月記為0,這樣就用掉12位(無閏月)或13位(有閏月),再
  346. 用高4位來表示閏月的月份,沒有閏月記為0。比如說,2000年的信息數據是是0xC96
  347. 化為十進制就是3222,化成二進制就是110010010110B,表示的含義是指1、2、5、8、10、11月大,其余月小;
  348. 數字和4095的關系好像是 如果小于會扣掉一個月(應該就是這一年沒有閏月)這里注意一下4095的12位全是1
  349. 數字和65536的關系好像是 LunarData[m]/65536+1保存閏月是幾月(好像閏月數量挺多啊)
  350. ****************************************************************/
  351. /*農歷數據*/
  352. const int wNongliData[100] =
  353. {2635,333387,1701,1748,267701,694,2391,133423,1175,396438
  354. ,3402,3749,331177,1453,694,201326,2350,465197,3221,3402
  355. ,400202,2901,1386,267611,605,2349,137515,2709,464533,1738
  356. ,2901,330421,1242,2651,199255,1323,529706,3733,1706,398762
  357. ,2741,1206,267438,2647,1318,204070,3477,461653,1386,2413
  358. ,330077,1197,2637,268877,3365,531109,2900,2922,398042,2395
  359. ,1179,267415,2635,661067,1701,1748,398772,2742,2391,330031
  360. ,1175,1611,200010,3749,527717,1452,2742,332397,2350,3222
  361. ,268949,3402,3493,133973,1386,464219,605,2349,334123,2709
  362. ,2890,267946,2773,592565,1210,2651,395863,1323,2707,265877};

  363. static int wCurYear,wCurMonth,wCurDay;
  364. static int nTheDate,nIsEnd,m,k,n,i,nBit;
  365. char szNongli[30], szNongliDay[10],szShuXiang[10];
  366. /*—取當前公歷年、月、日—*/
  367. wCurYear = year;
  368. wCurMonth = month;
  369. wCurDay = day;
  370. /*—計算到初始時間1921年2月8日的天數:1921-2-8(正月初一)—*/
  371. /*1921年 雞年 辛酉年*/
  372. nTheDate = (wCurYear-1921) * 365 + (wCurYear-1921) / 4 + wCurDay + wMonthAd[wCurMonth-1]-38;
  373. if((!(wCurYear % 4)) && (wCurMonth > 2)) //如今年陽歷是閏年(2月有29天),而且當前月份大于2月,經歷的總天數加1
  374. nTheDate = nTheDate + 1;
  375. /*–計算農歷天干、地支、月、日—*/
  376. nIsEnd = 0;
  377. m = 0;
  378. while(nIsEnd != 1)
  379. {
  380.       if(wNongliData[m] < 4095) //4095:111111111111 判斷是否有閏月  小于則沒有閏月 扣掉一個月
  381.        k = 11;
  382.        else
  383.              k = 12;
  384.              n = k;
  385.      while(n>=0)
  386.   {
  387.         //獲取wNongliData(m)的第n個二進制位的值
  388.          nBit = wNongliData[m];
  389.            for(i=1;i<n+1;i++) //大小月確定
  390.            nBit = nBit/2;
  391.            nBit = nBit % 2; //取出農歷數據前12位的二進制數據
  392.           if (nTheDate <= (29 + nBit))//若為1則是大月 天數有30天
  393.     {
  394.             nIsEnd = 1; //大月
  395.             break;
  396.     }
  397.            nTheDate = nTheDate-29-nBit;//天數
  398.            n = n-1;
  399.   }
  400.      if(nIsEnd)
  401.        break;
  402.       m = m + 1;
  403. }   
  404. wCurYear =1921 + m;
  405. wCurMonth =k-n + 1; //農歷月份
  406. wCurDay = nTheDate; //農歷天數
  407. if (k == 12) //存在閏月
  408. {
  409.        if (wCurMonth == wNongliData[m] / 65536 + 1)//保存閏月是幾月
  410.        wCurMonth =1-wCurMonth;
  411.        else if (wCurMonth > wNongliData[m] / 65536 + 1)
  412.        wCurMonth = wCurMonth-1;
  413. }
  414. /*–生成農歷天干、地支、屬相 ==> wNongli–*/
  415. /************************************************************************
  416. * 計算公式: 天干:(農歷年份-3)Mod 10
  417. * 地支:(農歷年份-3)Mod 12
  418. * 生肖:(Year-3) Mod 12
  419. ************************************************************************/
  420. printf(" %s年 ",cShuXiang[(wCurYear - 4) % 12]);//屬相
  421. printf("%s",cTianGan[(wCurYear - 4)  % 10]);//天干
  422. printf("%s年 ",cDiZhi[(wCurYear - 4) % 12]);//地支
  423. /*–生成農歷月、日 ==> wNongliDay–*/
  424. if (wCurMonth < 1) //閏月
  425. {
  426. printf("閏");
  427. printf("%s",cMonName[-1 * wCurMonth]);//農歷月份確定
  428. printf("月");
  429. printf("%s",cDayName[wCurDay]);//農歷日期確定
  430. printf(" %s\n",Week_Day2(Week_Day1(year,month,day)));//星期的確定
  431. }
  432. else
  433. {
  434. printf("%s",cMonName[wCurMonth]);
  435. printf("月 ");
  436. printf("%s",cDayName[wCurDay]);
  437. printf(" %s\n",Week_Day2(Week_Day1(year,month,day)));
  438. }
  439. }
  440. /**********************************************************************
  441. *   函數名:日歷顯示
  442. *   入口參數:year,month,day
  443. *   調用函數:void Menu1(int year,int month,int day)
  444. **********************************************************************/
  445. void Day_Display(int year,int month,int day)
  446. {
  447. printf("\n");
  448. Menu1(year,month,day);
  449. }
  450. /***************************************************************************************
  451. *  函數名:獲取當前系統時間
  452. *  調用函數:localtime();
  453. *  輸出:當前系統時間,星期,農歷,假日
  454. ***************************************************************************************/
  455. void RTC()
  456. {
  457. int Year,Month,Day,hour,min,sec,F;
  458. struct tm * tmptr;
  459. time_t secnow;
  460. time(&secnow);
  461. tmptr = localtime(&secnow);
  462. Year=tmptr->tm_year+1900;
  463. Month=tmptr->tm_mon+1;
  464. Day=tmptr->tm_mday;
  465. F=tmptr->tm_wday;
  466. hour = tmptr->tm_hour;
  467. min = tmptr->tm_min;
  468. printf("         當前時間:%d年%d月%d日 %02d:%02d  ",Year,Month,Day,hour,min);
  469. // printf("  %s", Week_Day2(F));
  470. Lunar_Calendar(Year,Month,Day);
  471. printf(" %s", Festival(Month,Day));
  472. }
  473. /****************************************************************************************************
  474. *    函數名:定時關機/重啟工具
  475. *    作者:祝浩
  476. *****************************************************************************************************/
  477. void Shutdown(void )
  478. {
  479. int num,num_end;
  480.       int seconds, minutes;
  481.       char string_seconds[5];
  482.       char close[] = "shutdown -s -t 0";      //關機
  483.       char result[] = "shutdown -r -t 0";//重啟
  484.       printf("請輸入命令 1:關機 2:重啟 3:取消計劃 4:退出\n");
  485.      scanf("%d",&num);
  486.   while( num !=1 && num !=2&& num!=3 && num!=4 )           
  487.       {
  488.             printf("輸入序號錯誤,請重新輸入:");
  489.             scanf("%d",&num);
  490.       }
  491. if ( num == 1 )//定時關機
  492.       {
  493.             printf("\n請輸入關機時間(0~600分):");
  494.            
  495.             scanf("%d",&minutes);
  496.             printf("\n");
  497.            
  498.             while ( minutes < 0 || minutes > 600 )
  499.             {
  500.                   printf("輸入時間錯誤,請重新輸入:");
  501.                   scanf("%d",&minutes);
  502.                   printf("\n");
  503.                  
  504.             }
  505.            
  506.             seconds = minutes * 60;             //將輸入的分鐘轉化為秒
  507.             itoa(seconds, string_seconds, 10);  //將int型轉換成string型  10 代表的十進制
  508.             system(strcat(close,string_seconds));//stract函數拼接字符串
  509.            
  510.             printf("執行成功! %d分鐘后,電腦將自動關閉...\n\n",minutes);
  511.             printf("請及時保存相關的操作!關機計時中...\n\n");
  512.       }
  513. else  if( num == 2 )//定時重啟
  514.       {
  515.             printf("請輸入重啟時間(0~600分):");
  516.            
  517.             scanf("%d",&minutes);
  518.             printf("\n");
  519.            
  520.             while ( minutes < 0 || minutes > 600 )
  521.             {
  522.                   printf("輸入時間錯誤,請重新輸入:");
  523.                   scanf("%d",&minutes);
  524.                   printf("\n");
  525.                  
  526.             }
  527.             seconds = minutes * 60;             //將輸入的分鐘轉化為秒
  528.             itoa(seconds, string_seconds, 10);  //將int型轉換成string型  10 代表的十進制
  529.             system(strcat(result,string_seconds));//stract函數拼接字符串
  530.            
  531.             printf("執行成功! %d分鐘后,電腦將自動重啟...\n\n",minutes);
  532.             printf("請及時保存相關的操作!重啟計時中...\n\n");
  533.            
  534.       }
  535.   else if(num==3)
  536.   {
  537.    system("shutdown /a");//取消關機/重啟計劃
  538. printf("取消成功,歡迎下次使用!\n");
  539.   }
  540.   else if(num==4)
  541.   {
  542.    exit(0);
  543.   }
  544. }
  545. /****************************************************************************************************
  546. *   函數名:系統垃圾清理工具
  547. *   調用函數:windows系統函數
  548. ****************************************************************************************************/
  549. void Rubbish()
  550. {
  551. printf(" 正在清除系統垃圾文件,請稍等...... \n");
  552. system("del /f /s /q %systemdrive%\\*.tmp");
  553. system("del /f /s /q %systemdrive%\\*._mp");
  554. system("del /f /s /q %systemdrive%\\*.log");
  555. system("del /f /s /q %systemdrive%\\*.gid");
  556. system("del /f /s /q %systemdrive%\\*.chk");
  557. system("del /f /s /q %systemdrive%\\*.old");
  558. system("del /f /s /q %windir%\\*.bak");
  559. system("del /f /s /q %windir%\\prefetch\\*.*");
  560. system("rd /s /q %windir%\\temp");
  561. system("md %windir%\\temp");
  562. system("del /f /s /q \"%appdata%\\Microsoft\\Windows\\cookies\\*.*\"");
  563. system("del /f /s /q \"%userprofile%\\Local Settings\\Temporary Internet Files\\*.*\"");
  564. system("del /f /s /q \"%userprofile%\\Local Settings\\Temp\\*.*\"");
  565. system("rd /s /q \"%userprofile%\\Local Settings\\Temp\"");
  566. system("md \"%userprofile%\\Local Settings\\Temp\"");
  567. system("del /f /s /q \"%appdata%\\Microsoft\\Windows\\Recent\\*.*\"");
  568. system("pause");
  569. printf("系統垃圾清理完成!歡迎下次使用\n");
  570. }
  571. /**********************************************************************************************
  572. *    函數名:主函數
  573. *    時間:2012/12/17
  574. *    作者:祝浩
  575. **********************************************************************************************/
  576. void main()
  577. {
  578. int year,month,day,a,b,i;
  579. int Event,Event1,Event2;
  580. char name[20];
  581. FILE *fp;
  582. printf("                         *                            *                   \n");
  583. printf("                        * *                          * *                 \n");
  584. printf("                       *   *                        *   *                \n");
  585. printf("                      *     *                      *     *         \n\n\n\n");


  586. printf("                                    *     *                               \n");
  587. printf("                                     *   *                                \n");
  588. printf("                                      * *                                \n");
  589. printf("                                       *                                  \n");
  590. printf("             **********************************************************\n");
  591. printf("                             *           *             *                   \n");
  592. printf("                             * 歡迎進入萬年歷查詢系統  *                 \n");
  593. printf("                             *           *             *                  \n");
  594. printf("             **********************************************************\n\n");
  595. while(1)
  596. {
  597. RTC();
  598. printf("\n\n請按任意鍵進入查詢系統...........");
  599. getch();
  600. printf("\n\n");
  601. printf("          1 年歷 2 月歷 3 日歷 4 農歷查詢                \n");
  602. printf("          5 記事本 6:定時關機工具 7:系統垃圾清理 8:退出 \n");
  603. printf("               請輸入您的選擇<1~8>,按回車鍵確定: ");
  604. scanf("%d",&b);
  605. /****************************************************************************************************************
  606. *                                        菜單選項
  607. ****************************************************************************************************************/
  608. switch(b)
  609. {
  610. case 1:/*選擇1時*/
  611.              printf("\n請輸入您要查的年份: ");/*給出輸入提示*/
  612.               scanf("%d",&year);/*輸入查詢的年份*/   
  613.               a=Menu3(year,1,1);//輸入參數檢查
  614.               if(a==0)
  615.      {
  616.                 printf("錯誤!請您重新輸入。\n");/*輸入值異常時報錯*/
  617.                 break;
  618.      }
  619.      Year( year);
  620.      /*for(i=1;i<=12;i++)
  621.      {
  622.               Month_Display(year,i);
  623.      }*/
  624.                 break;
  625. case 2:/*選擇二時*/
  626.               printf("\n請輸入您要查的年和月,年月之間用空格隔開: ");/*給出輸入提示*/
  627.               scanf("%d%d",&year,&month);/*輸入需要查詢的年 月*/
  628.               a=Menu3(year,month,1);
  629.              if(a==0)
  630.     {
  631.               printf("錯誤!請您重新輸入。\n");
  632.               break;
  633.     }
  634.               Month_Display(year,month);
  635.              break;
  636. case 3:/*選擇3時*/
  637.              printf("\n請輸入您要查的年月日,年月日之間用空格隔開: ");/*給出輸入提示*/
  638.                 scanf("%d%d%d",&year,&month,&day);/*輸入年 月 日*/
  639.                 a=Menu3(year,month,day);
  640.                if(a==0)
  641.       {
  642.                 printf("錯誤!請您重新輸入!\n");/*輸入值異常時報錯*/
  643.                 break;
  644.       }
  645.                Day_Display(year,month,day);
  646.                break;
  647. case 4:   /*選擇4時*/
  648.        printf("請輸入您需要查詢的日期,年月日中間用空格隔開");
  649.          scanf("%d%d%d",&year,&month,&day);
  650.    if(month>12||day>31)
  651.    {
  652.              printf("錯誤!請您重新輸入\n");
  653.              break;
  654.    }
  655.             Lunar_Calendar(year,month,day);
  656.    break;
  657. case 5:  /*選擇5時*/
  658.      while(1)
  659. {
  660.        printf("歡迎使用記事本,請輸入日期,年月日中間用空格隔開\n");
  661.     scanf("%d%d%d",&year,&month,&day);
  662. //if(month<12&&day<31)
  663. // {
  664.             sprintf(name,"%d%d%d",year,month,day);
  665.    strcat(name,".txt");//文件已存放時間命名
  666.       if((fp=fopen(name,"rt"))==NULL||sizeof(S)==0)
  667.    {
  668.             printf("not !");
  669.       printf("是否需要添加記事?0:否 1:是\n");
  670.                scanf("%d",&Event1);
  671.          if(Event1==1)
  672.       {
  673.                  printf("請輸入事件\n");
  674.            scanf("%s",&S);//將輸入的記事存放的臨時變量中
  675.                  if((fp=fopen(name,"w"))==NULL)
  676.      {
  677.                printf("not !");
  678.      }
  679.                 fputs(S,fp);//將臨時變量寫入到文本中存放
  680.                 fclose(fp);//保存并關閉文本
  681.           printf("添加成功");
  682.           printf("是否退出記事本功能?  0:否 1:是\n");
  683.           scanf("%d",&Event2);
  684.            if(Event2==1)
  685.      {
  686.      printf("退出記事本\n");
  687.      exit(0);
  688.      }
  689.       }
  690.       else if(Event1==0){printf("退出系統\n"); exit(0);}
  691.       else printf("輸入錯誤\n");
  692.    }
  693.    
  694.     /*******************************有記事,是否刪除************************************/
  695.     else
  696.     {
  697.      if((fp=fopen(name,"r"))==NULL)
  698.      { printf("not !");}   
  699.         fputs(fp,name);//讀文件
  700.               fgets(S,1000,fp);//將從文件中讀到的信息放到字符串臨時變量S中
  701.               fclose(fp);//關閉文件
  702.               printf("%d-%d-%d:%s\n",year,month,day,S);
  703.      if(sizeof(S)!=0)
  704.      {
  705.               printf("有記事,是否需要刪除?0:否(退出記事本),1:是");
  706.         scanf("%d",&Event);
  707.          if(Event==1)
  708.       {  
  709.       memset(S, 0, sizeof(S));
  710.        if((fp=fopen(name,"w"))==NULL)
  711.        { printf("not !");}   
  712.                    fputs(S,fp);//將輸入事件寫入文本  
  713.        fclose(fp);
  714.        if(remove)
  715.        {
  716.        //printf("刪除失敗!退出記事本\n");
  717.        }
  718.     else
  719.      //printf("刪除成功!退出記事本");
  720.         exit(0);
  721.       }
  722.       else
  723.       {
  724.        printf("退出記事本\n");
  725.           exit(0);
  726.       }
  727.      }
  728.     }  
  729. }
  730. case 6: Shutdown();break;
  731. case 7:Rubbish();break;
  732. case 8: exit(0);break;//退出         
  733. default:
  734.         printf("錯誤!請您重新輸入!\n\n");
  735. }
  736. }
  737. }
復制代碼


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久久久久久 | 国产成人叼嘿视频在线观看 | 日本一区二区三区四区 | 黄色在线观看网站 | 欧美一级三级 | 黄色日本视频 | 超碰伊人久久 | 91在线免费视频 | 高清黄色毛片 | 成人精品一区二区户外勾搭野战 | 精品欧美乱码久久久久久1区2区 | 午夜激情在线视频 | 亚洲视频国产视频 | 欧美精品久久久久久 | 亚洲区一区二区 | 黄网站涩免费蜜桃网站 | 欧美成年黄网站色视频 | 翔田千里一区二区 | 亚洲欧洲日韩精品 中文字幕 | 四虎午夜剧场 | 91精品久久久久久久 | 男女搞网站 | av一级在线观看 | 国产精品欧美一区喷水 | 久久久久久久香蕉 | 一区二区三区高清 | 亚洲激精日韩激精欧美精品 | 久久久精品一区二区三区 | 国产成人综合在线 | 欧美一区二区三区视频 | 国产精品成人一区二区 | 久久综合一区 | 亚洲精品9999| 中文字幕亚洲欧美 | 97人人澡人人爽91综合色 | 亚洲成av人片在线观看 | 91成人在线视频 | 激情网站 | 日本精品视频一区二区三区四区 | 成人欧美一区二区三区在线观看 | 国产精品久久精品 |