检查C#中的闰年

时间:2010-11-08 21:47:02

标签: c#

我想将条目日期+ 1年添加到名为完成日期的列中。

如果输入日期是闰年,我需要增加364天,如果不是365天。

有没有办法在c#中检查这一点,使用当前日期时间的年份&操纵飞跃年/不,然后添加日。

感谢。

3 个答案:

答案 0 :(得分:44)

您可以使用DateTime.IsLeapYear方法。

但只是为了处理你真的不需要使用那种方法。 DateTime.AddYears考虑了闰年。

var leapYear = new DateTime(2000, 2, 29);
Console.WriteLine("Is 2000 a leap year? {0}", DateTime.IsLeapYear(leapYear.Year)); // 2000 is a leap year
Console.WriteLine("One year added to {0} is {1}", leapYear, leapYear.AddYears(1)); // 2000-02-29 plus 1 year is 2001-02-28

答案 1 :(得分:0)

var dateStart = new DateTime(2010,1,10);  // Some date to check
var newDate = DateTime.IsLeapYear(dateStart.Year) ? dateStart.AddDays(365) : dateStart.AddDays(364);
// or 
var newDate = dateStart.AddYears(1).AddDays(-1);

答案 2 :(得分:0)

我觉得这个整理器是一种扩展方法:

public static class DateTimeExtensions
{
    public static bool IsLeapYear(this DateTime source)
    {
        return DateTime.IsLeapYear(source.Year);
    }
}