using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int year = 2019, month = 10;
int runYear = 29;
int pingYear = 28;
int allDays = 0;
int[] daylist = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
for (int i = 1900; i < year; i++)
{// 计算1990~year-1之间的天数
if ((i % 4 == 0) && (i % 100 != 0) || (i % 400 == 0))
{
allDays += 366;
}
else
{
allDays += 365;
}
}
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
{
caseItem(runYear, month, allDays, daylist);
}
else
{
caseItem(pingYear, month, allDays, daylist);
}
}
public static void caseItem(int currentday, int month,int alldays,int[] daylist)
{
int day;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for (int i = 0; i < month-1; i++)
{
alldays += daylist[i];
}
day = 31;
alldays += day;
calendar(alldays, day);
break;
case 4:
case 6:
case 9:
case 11:
for (int i = 0; i < month - 1; i++)
{
alldays += daylist[i];
}
day = 30;
alldays += day;
calendar(alldays, day);
break;
case 2:
for (int i = 0; i < month - 1; i++)
{
alldays += daylist[i];
}
alldays += currentday;
calendar(alldays,currentday);
break;
}
}
public static void calendar(int alldays,int monthday)
{// 打印日历;
int space = alldays % 6;// 计算每个月前面有多少个空格
Console.WriteLine("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i <= space; i++)
{
Console.Write(" \t");
}
for (int i = 1; i <= monthday; i++)
{
Console.Write(i + "\t");
if ((i + space) % 7 == 0)
{
Console.WriteLine();
}
}
}
}
}
日历生成
最新推荐文章于 2024-08-29 08:46:26 发布