C#实现小小的日历 .

 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.   
  6. namespace CalendarConsoleApp  
  7. {  
  8.     class Program  
  9.     {  
  10.         static void Main(string[] args)  
  11.         {  
  12.             Console.WriteLine("请输入年月");  
  13.             int year = int.Parse(Console.ReadLine());  
  14.             int month = int.Parse(Console.ReadLine());  
  15.             int day = 0;  
  16.             int sum = 0;  
  17.           
  18.             for(int i=1900;i<year;i++)  
  19.             {  
  20.                 if(i%4==0&&i%100!=0||i%400==0)  
  21.                 {  
  22.                     sum+=366;  
  23.                 }  
  24.                 else  
  25.                 {  
  26.                     sum+=365;  
  27.                 }  
  28.             }  
  29.           
  30.             switch(month)  
  31.             {  
  32.                 case 12:  
  33.                     day = 31;  
  34.                     break;  
  35.                 case 11:  
  36.                     day = 30;  
  37.                     break;  
  38.                 case 10:  
  39.                     day = 31;  
  40.                     break;  
  41.                 case 9:  
  42.                     day = 30;  
  43.                     break;  
  44.                 case 8:  
  45.                     day = 31;  
  46.                     break;  
  47.                 case 7:  
  48.                     day = 31;  
  49.                     break;  
  50.                 case 6:  
  51.                     day = 30;  
  52.                     break;  
  53.                 case 5:  
  54.                     day = 31;  
  55.                     break;  
  56.                 case 4:  
  57.                     day = 30;  
  58.                     break;  
  59.                 case 3:  
  60.                     day = 31;  
  61.                     break;  
  62.                 case 2:  
  63.                     if(year%4==0&&year%100!=0||year%400==0)  
  64.                         day = 29;  
  65.                     else  
  66.                         day = 28;  
  67.                     break;  
  68.                 case 1:  
  69.                     day = 31;  
  70.                     break;  
  71.             }  
  72.             int leap;  
  73.             /*先计算某月以前月份的总天数*/  
  74.             switch (month)  
  75.             {  
  76.                 case 1: sum += 0; break;  
  77.                 case 2: sum += 31; break;  
  78.                 case 3: sum += 59; break;  
  79.                 case 4: sum += 90; break;  
  80.                 case 5: sum += 120; break;  
  81.                 case 6: sum += 151; break;  
  82.                 case 7: sum += 181; break;  
  83.                 case 8: sum += 212; break;  
  84.                 case 9: sum += 243; break;  
  85.                 case 10: sum += 273; break;  
  86.                 case 11: sum += 304; break;  
  87.                 case 12: sum += 334; break;  
  88.             }  
  89.             /*判断是不是闰年*/  
  90.             if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))  
  91.                 leap = 1;  
  92.             else  
  93.                 leap = 0;  
  94.             /*如果是闰年且月份大于2,总天数应该加一天*/  
  95.             if (leap == 1 && month > 2)  
  96.                 sum++;  
  97.   
  98.             int space = (sum+1)%7;  
  99.           
  100.             Console.WriteLine("日\t一\t二\t三\t四\t五\t六\t");  
  101.           
  102.             for(int i=1;i<=space+day;i++)  
  103.             {  
  104.                 if(i<=space)  
  105.                     Console.Write("\t");  
  106.                 else  
  107.                     Console.Write(i-space+"\t");  
  108.               
  109.                 if(i%7 == 0)  
  110.                     Console.WriteLine();  
  111.             }  
  112.             Console.WriteLine();  
  113.         }  
  114.     }  
  115. }  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值