CalendarAssistant.cpp
上传用户:sz0451
上传日期:2022-07-29
资源大小:256k
文件大小:4k
源码类别:

.net编程

开发平台:

Visual C++

  1. // This is the main project file for VC++ application project 
  2. // generated using an Application Wizard.
  3. #include "stdafx.h"
  4. #using <mscorlib.dll>
  5. using namespace System;
  6. // Function prototypes
  7. int GetYear();
  8. int GetMonth();
  9. int GetDay(int year, int month);
  10. void DisplayDate(int year, int month, int day);
  11. // This is the entry point for this application
  12. #ifdef _UNICODE
  13. int wmain(void)
  14. #else
  15. int main(void)
  16. #endif
  17. {
  18.     Console::WriteLine(S"Welcome to your calendar assistant");
  19.     for (int count = 1; count <= 5; count++)
  20.     {
  21.         Console::Write(S"nPlease enter date ");
  22.         Console::WriteLine(count);
  23.         int year = GetYear();
  24.         int month = GetMonth();
  25.         int day = GetDay(year, month);
  26.         Console::Write(S"Press B (break), C (continue), or anything else to display date ");
  27.         String * input = Console::ReadLine();
  28.         if (input->Equals(S"B"))
  29.         {
  30.             break;
  31.         }
  32.         else if (input->Equals(S"C"))
  33.         {
  34.             continue;
  35.         }
  36.         DisplayDate(year, month, day);
  37.     }
  38.     return 0;
  39. }
  40. // Ask the user to enter a year
  41. int GetYear()
  42. {
  43.     Console::Write(S"Year? ");
  44.     String * input = Console::ReadLine();
  45.     int year = input->ToInt32(0);
  46.     return year;
  47. }
  48. // Ask the user to enter a month
  49. int GetMonth()
  50. {
  51.     int month = 0;
  52. do
  53.     {
  54.         Console::Write(S"Month [1 to 12]? ");
  55.         String * input = Console::ReadLine();
  56.         month = input->ToInt32(0);
  57.     }
  58.     while (month < 1 || month > 12);
  59. return month;
  60. }
  61. // Ask the user to enter a day
  62. int GetDay(int year, int month)
  63. {
  64.     int day = 0;
  65.     int maxDay;
  66.     if (month == 4 || month == 6 || month == 9 || month == 11)
  67.     {
  68.         maxDay = 30;
  69.     }
  70.     else if (month == 2)
  71.     {
  72.         bool isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
  73.         if (isLeapYear)
  74.         {
  75.             maxDay = 29;
  76.         }
  77.         else
  78.         {
  79.             maxDay = 28;
  80.         }
  81.     }
  82.     else
  83.     {
  84.         maxDay = 31;
  85.     }
  86.     do
  87.     {
  88.         Console::Write(S"Day [1 to ");
  89.         Console::Write(maxDay);
  90.         Console::Write(S"]? ");
  91.         String * input = Console::ReadLine();
  92.         day = input->ToInt32(0);
  93.     }
  94.     while (day < 1 || day > maxDay);
  95.     return day;
  96. }
  97. // Display the date
  98. void DisplayDate(int year, int month, int day)
  99. {
  100.     Console::WriteLine(S"nThis is the date you entered:");
  101.     Console::Write(year);
  102.     switch (month)
  103.     {
  104.         case 1:  Console::Write(S" January ");   break;
  105.         case 2:  Console::Write(S" February ");  break;
  106.         case 3:  Console::Write(S" March ");     break;
  107.         case 4:  Console::Write(S" April ");     break;
  108.         case 5:  Console::Write(S" May ");       break;
  109.         case 6:  Console::Write(S" June ");      break;
  110.         case 7:  Console::Write(S" July ");      break;
  111.         case 8:  Console::Write(S" August ");    break;
  112.         case 9:  Console::Write(S" September "); break;
  113.         case 10: Console::Write(S" October ");   break;
  114.         case 11: Console::Write(S" November ");  break;
  115.         case 12: Console::Write(S" December ");  break;
  116.         default: Console::Write(S" Unknown ");   break;
  117.     }
  118. Console::Write(day);
  119.     switch (month)
  120.     {
  121.         case 12: 
  122.         case 1:  
  123.         case 2:  Console::WriteLine(S" [Winter]"); break;
  124.         case 3:  
  125.         case 4:  
  126.         case 5:  Console::WriteLine(S" [Spring]"); break;
  127.         case 6:
  128.         case 7:
  129.         case 8:  Console::WriteLine(S" [Summer]"); break;
  130.         case 9:  
  131.         case 10: 
  132.         case 11: Console::WriteLine(S" [Fall]"); break;
  133.     }
  134.     Console::WriteLine();
  135. }