用c#写程序 控制台中输出年历,月历基本格式
时间: 2024-02-22 19:54:57 浏览: 28
好的,以下是C#代码,可以输出年历和月历的基本格式:
```csharp
using System;
public class Calendar
{
private static int GetWeekday(int year, int month, int day)
{
// 计算某一天是星期几
if (month < 3)
{
month += 12;
year--;
}
return (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;
}
private static void PrintHeader(int year, int month)
{
// 打印年月信息
Console.WriteLine("{0}年{1}月", year, month);
Console.WriteLine("日 一 二 三 四 五 六");
}
private static void PrintMonth(int year, int month)
{
// 打印某一月的日历
PrintHeader(year, month);
int daysInMonth = DateTime.DaysInMonth(year, month);
int firstWeekday = GetWeekday(year, month, 1);
for (int i = 0; i < firstWeekday; i++)
{
Console.Write(" ");
}
for (int i = 1; i <= daysInMonth; i++)
{
Console.Write("{0,2} ", i);
if ((i + firstWeekday) % 7 == 0)
{
Console.WriteLine();
}
}
Console.WriteLine();
}
private static void PrintYear(int year)
{
// 打印某一年的日历
for (int i = 1; i <= 12; i++)
{
PrintMonth(year, i);
}
}
public static void Main()
{
int year = DateTime.Now.Year;
PrintYear(year);
}
}
```
以上代码可以输出当前年份的年历。如果需要输出指定年份的年历,可以在 `Main` 函数中调用 `PrintYear` 函数,并传入需要输出的年份。
如果需要输出指定月份的月历,可以在 `Main` 函数中调用 `PrintMonth` 函数,并传入需要输出的年份和月份。