检查年份是否为闰年

pen*_*mas 1 c# datetime

<script Language="c#" runat="server">
  void Page_Load()
  {
   int currentYear = DateTime.Now.Year();

   if (currentYear % 400 == 0) {
   Message2.Text = ("This is a leap year");
   }
   else {
     Message2.Text = ("This is not a leap year");
   }

 }
Run Code Online (Sandbox Code Playgroud)

目前我收到RunTime错误.我的目标是使用DateTime.Now.Year()测试当前年份是否为闰年.我认为问题是我没有正确地将年份转换为int?请指教.

sme*_*ead 14

你可以使用DateTime.IsLeapYear():

if (DateTime.IsLeapYear(year)) 
{
   //do stuff
}
Run Code Online (Sandbox Code Playgroud)


Ste*_*ger 5

对于那些来这里了解规则的人:

根据维基百科,这些额外的天数每年都会发生。

  • 是 4 的整数倍。
  • 能被 100 整除的年份不是闰年,除非能被 400 整除。

所以这导致了这个函数:

// PRE: no year < 1 or > 9999
// POST: true if year is a leap year, or false if not.
public static bool IsLeapYear(int year) 
{
    if (year < 1 || year > 9999) 
    {
        throw new ArgumentOutOfRangeException("year", Environment.GetResourceString("ArgumentOutOfRange_Year"));
    }
    return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道如果我对 BC 使用负年份会发生什么 - 实际上,问题是哪个日历适用,特别是在 1753 年之前(对于英国)?;)