C#实现小小的日历

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CalendarConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入年月");
		    int year = int.Parse(Console.ReadLine());
		    int month = int.Parse(Console.ReadLine());
		    int day = 0;
		    int sum = 0;
		
		    for(int i=1900;i<year;i++)
		    {
			    if(i%4==0&&i%100!=0||i%400==0)
			    {
				    sum+=366;
			    }
			    else
			    {
				    sum+=365;
			    }
		    }
		
		    switch(month)
		    {
		        case 12:
			        day = 31;
			        break;
		        case 11:
			        day = 30;
			        break;
		        case 10:
			        day = 31;
			        break;
		        case 9:
			        day = 30;
			        break;
		        case 8:
			        day = 31;
			        break;
		        case 7:
			        day = 31;
			        break;
		        case 6:
			        day = 30;
			        break;
		        case 5:
			        day = 31;
			        break;
		        case 4:
			        day = 30;
			        break;
		        case 3:
			        day = 31;
			        break;
		        case 2:
			        if(year%4==0&&year%100!=0||year%400==0)
				        day = 29;
			        else
				        day = 28;
			        break;
		        case 1:
			        day = 31;
			        break;
		    }
		    int leap;
            /*先计算某月以前月份的总天数*/
            switch (month)
            {
                case 1: sum += 0; break;
                case 2: sum += 31; break;
                case 3: sum += 59; break;
                case 4: sum += 90; break;
                case 5: sum += 120; break;
                case 6: sum += 151; break;
                case 7: sum += 181; break;
                case 8: sum += 212; break;
                case 9: sum += 243; break;
                case 10: sum += 273; break;
                case 11: sum += 304; break;
                case 12: sum += 334; break;
            }
            /*判断是不是闰年*/
            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
                leap = 1;
            else
                leap = 0;
            /*如果是闰年且月份大于2,总天数应该加一天*/
            if (leap == 1 && month > 2)
                sum++;

		    int space = (sum+1)%7;
		
		    Console.WriteLine("日\t一\t二\t三\t四\t五\t六\t");
		
		    for(int i=1;i<=space+day;i++)
		    {
			    if(i<=space)
				    Console.Write("\t");
			    else
				    Console.Write(i-space+"\t");
			
			    if(i%7 == 0)
                    Console.WriteLine();
		    }
            Console.WriteLine();
        }
    }
}



       else
        Console.Write(i-space+"\t");
   
       if(i%7 == 0)
                    Console.WriteLine();
      }
            Console.WriteLine();
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值