c#检查一年是否是没有DateTime的闰年

时间:2016-10-29 02:08:44

标签: c#

有一个程序有问题,目前在我的第二周编程课程,很抱歉,如果这不是最好的问题。

class Program
{
    static void Main(string[] args)
    {
        int a;
        Console.WriteLine("Enter the year");
        a = int.Parse(Console.ReadLine());
        {
            if ((a % 4)  == 0)
                Console.WriteLine("It's a leap year.");
            else
                Console.WriteLine("It's not a leap year.");
        }
        Console.ReadLine();
    }
}

对此公式有很多麻烦。

4 个答案:

答案 0 :(得分:6)

rules for a leap year are

  • 年份可以平均分为4;
  • 如果年份可以平均除以100,则不是闰年,除非;
  • 这一年也可以被400整除。然后是闰年。

希望这可以帮助您找出将其转换为代码的方法。由于这是作业,我不会发布实际的代码,但我会给你一些提示。要结合两项检查,请使用&&运算符代表AND||代表OR!代表NOT

最终公式看起来像

if ( a%4 == 0 __ (!(_____ == 0) __ (______ == 0))

您需要为自己填写空白。

答案 1 :(得分:2)

你可以试试这个..

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Please Enter The Year:");
            int year = int.Parse(Console.ReadLine());
            if (year%400 == 0 || (year%4 == 0 && year%100 != 0))
            {
                Console.WriteLine("Leap Year");
            }
            else
            {
                Console.WriteLine("Not Leap Year");
            }
            Console.ReadLine();
        }
    }

答案 2 :(得分:1)

应该这样做。如果您理解这段代码,那么您已经明确地为家庭作业赢得了一点......这确实有效: - )

    private static Boolean IsLeapYear(Int32 year)
    {
        if (-1 != ~(year & (1 | 1 << 1))) return false;

        if (0 == ((year >> 2) % 0x0019))
        {
            if (0 == (year / 0x0010) % 0x0019) return true;
            return false;
        }

        return true;
    }

答案 3 :(得分:-2)

DateTime类有一个IsLeapYear方法

您可以使用以下内容:

 if(DateTime.IsLeapYear(a))
  {
   Console.WriteLine("It's a leap year")
  }
  else
  {
  Console.WriteLine("It's not a leap year")
  }