using System;
namespace Calendar
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入年份:");
string input_year = Console.ReadLine();
int year = int.Parse(input_year);
for (int i = 1; i <= 12; i++)
{
PrintMonthDetails(year, i);
}
}
/// <summary>
/// 打印xx年xx月的日历
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
private static void PrintMonthDetails(int year, int month)
{
Console.WriteLine(year + "年" + month + "月");
Console.WriteLine("日\t一\t二\t三\t四\t五\t六");
int days = GetDayOfMonth(year, month);
for (int i = 1; i <= days; i++)
{
int zhouji = GetWeekOfDay(year, month, i);
if (i == 1)
{
for (int index = 1; index <= zhouji; index++)
{
Console.Write("\t");
}
}
switch (zhouji)
{
case 6:
Console.Write(i + "\n");
break;
default:
Console.Write(i + "\t");
break;
}
}
Console.WriteLine("\n--------------------------\n");
}
/// <summary>
/// 拿到这个月有多少天
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
/// <returns>天数</returns>
private static int GetDayOfMonth(int year, int month)
{
int MonthDays = 0;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
MonthDays = 31;
break;
case 2:
MonthDays = 28;
break;
default:
MonthDays = 30;
break;
}
bool isLeap = IsLeapYear(year);
if (isLeap && month == 2)
{
MonthDays = 29;
}
return MonthDays;
}
/// <summary>
/// 判断是否是闰年
/// </summary>
/// <param name="year"></param> 输入的年份
/// <returns>
/// true : 闰年
/// false:平年
/// </returns>
private static bool IsLeapYear(int year)
{
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
{
return true;
}
return false;
}
/// <summary>
/// 根据xx年xx月xx日, 返回这天是星期几
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="day"></param>
/// <returns>星期几</returns>
private static int GetWeekOfDay(int year, int month, int day)
{
DateTime dt = new DateTime(year, month, day);
return (int)dt.DayOfWeek;
}
}
}
C#打印指定年份日历
最新推荐文章于 2024-05-28 17:39:10 发布