生活随笔
收集整理的這篇文章主要介紹了
C#输入年份打印日历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
輸入年份打印日歷
C#打印日歷思路
在控制臺中顯示年歷的方法
調用12次顯示月歷方法在控制臺中顯示月歷的方法
顯示表頭Console.WriteLine(“日\t一\t……”);
計算當月1日的星期數(顯示空白\t)
計算當月總天數(顯示每天) Console.Write(“1\t”) Console.Write(“2\t”)
計算當天星期數(逢六換行) Console.WriteLine();根據年月日計算星期數的方法根據年月計算天數根據年份判斷是否為閏年
class Program
{
static void Main(string[] args
){Console
.WriteLine("請輸入年份:");int year
= int.Parse(Console
.ReadLine());PrintYearCalendar(year
);}
private static bool IsLeapYear(int year
){return ((year
% 4 == 0 && year
% 100 != 0) || (year
% 400 == 0));}
private static int GetDaysByMonth(int year
,int month
){if(month
> 12 || month
< 1)return 0; switch (month
){case 2:return IsLeapYear(year
) ? 29 : 28;case 4:case 6:case 9:case 11:return 30;default: return 31;} }
private static int GetWeekByDay(int year
, int month
, int day
){DateTime dt
= new DateTime(year
, month
, day
);return (int)dt
.DayOfWeek
;}
private static void PrintMonthCalendar(int year
,int month
){Console
.WriteLine("{0}年{1}月",year
,month
);Console
.WriteLine("日\t一\t二\t三\t四\t五\t六");int week
=GetWeekByDay(year
, month
, 1);for(int i
= 0; i
< week
; i
++){Console
.Write("\t");}int days
= GetDaysByMonth(year
, month
);for(int i
= 1; i
<= days
; i
++){Console
.Write(i
+"\t");if (GetWeekByDay(year
, month
, i
) == 6){Console
.WriteLine();}}}
private static void PrintYearCalendar(int year
){for(int i
= 1; i
<= 12; i
++){PrintMonthCalendar(year
, i
);Console
.WriteLine();}}}
總結
以上是生活随笔為你收集整理的C#输入年份打印日历的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。