找到一年的最后一天

时间:2013-09-05 11:04:15

标签: c# datetime leap-year

我正在执行一项任务,要求按当前日期查找一年中的最后一天。

就像它的06 / Jan / 2013被给予它一样,它将自动返回一年的结束日。 喜欢31 / Dec / 2013

我正在使用多种方式,例如添加一年中的剩余日期,但是当它是闰年时,则会发生错过匹配, 任何身体都可以给我发送精确的解决方案或者告诉我如何。

基本上我想跳过一年中的最后一个日期。这对于C#来说是十分谨慎的

6 个答案:

答案 0 :(得分:17)

为什么不这么简单?

var date = new DateTime(2013, 1,6);
var lastDayOfTheYear = new DateTime(date.Year, 12, 31);

答案 1 :(得分:4)

这是一个简单的解决方案,我已经搜索了许多但经过多次尝试后,我做了这个。

DateTime LastDayOfYear(DateTime date)
    {           
        DateTime newdate = new DateTime(date.Year + 1, 1, 1);
        //Substract one year
        return newdate.AddDays(-1);
    }
//Here calling the function 
DateTime current_time = LastDayOfYear(DateTime.Now); // 05,Sep ,2013
// It returned 31, Dec, 2013

答案 2 :(得分:3)

你可以尝试这个.. 获得第一天和最后一天..

int year = DateTime.Now.Year;
DateTime firstDayyear = new DateTime(year , 1, 1);
DateTime lastDayyear = new DateTime(year , 12, 31);

答案 3 :(得分:3)

我认为你的意思是星期几?

new DateTime(DateTime.Now.Year, 12, 31).DayOfWeek

或更具可读性:

DateTime lastDateOfYear = new DateTime(DateTime.Now.Year, 12, 31);
DayOfWeek dayOfWeek = lastDateOfYear.DayOfWeek;

有关DayOfWeek枚举的更多信息,请访问:http://msdn.microsoft.com/en-us/library/system.dayofweek.aspx

或者你的意思是明天还有多少天。

DateTime lastDateOfYear = new DateTime(DateTime.Now.Year, 12, 31);
var daysTillNextYear = (lastDateOfYear - DateTime.Now).TotalDays;

答案 4 :(得分:1)

我会复制日期,将当天更改为31,将月份更改为12月,并且您将有最后一天。

答案 5 :(得分:1)

要获得最后一天,请使用:

string lastdayofyear = new DateTime(DateTime.Now.Year, 12,31).DayOfWeek.ToString();