【C#】控制台年历 (15)

闰年方法
01
private static bool IsLeapYear(int year)
{
//被4整除并且不能被100整除 或者 能被400整除
if((year % 4 ==0 && year % 100 != 0)||year % 400 ==0)
return true;
else
return false;
}
--------
02
private static bool IsLeapYear(int year)
{
return (year % 4 ==0 && year % 100 != 0)||year % 400 ==0;
}
--------
private static int GetDayByMonth(int year,int month)
{
if(month >= 1 && month <= 12)
{
switch(month)
{
//判断2月天数
//return IsLeapYear(year) ? 29 : 28;
case 2:
if (IsLeapYear(year))
return 29;
else
return 28;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return 31;
}
}
}
--------
private static int GetDayByMonth(int year,int month)
{
if(month < 1 || month > 12) return 0;
满足条件后再执行下方命令
switch(month)
{
//判断2月天数
//return IsLeapYear(year) ? 29 : 28;
case 2:
if (IsLeapYear(year))
return 29;
else
return 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六");
//根据1日星期数,显示空白
int weet = GetWeekByDay(year,month,1);
for(int i=0;i<week;i++)
Console.Write("\t");
//根据当月总天数,显示日
int days = GetDayByMonth(yeas,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=0;i<=12;i++)
{
PrintMonthCalendar(year,i);
Console.WriteLine();}
}
}
--------
private static void Main()
{
Console.WriteLine("请输入年份");
int year = int.Pare(Console.ReadLine());
PrintYearCalendar(Year);
}

浙公网安备 33010602011771号