1

我正在做一项任务,需要在给定的当前日期之前找到一年中的最后一天。

就像给它 06/Jan/2013 一样,它会自动返回一年的结束日。如 2013 年 12 月 31 日

我使用了很多方法,比如添加一年中的剩余天数,但是当它是闰年时,会发生错过匹配,任何人都可以给我发送精确的解决方案或指导我如何做。

基本上我想跳过一年中的最后一个日期。这只是 C#

4

6 回答 6

20

为什么不像这样简单?

var date = new DateTime(2013, 1,6);
var lastDayOfTheYear = new DateTime(date.Year, 12, 31);
于 2013-09-05T11:06:30.110 回答
4

我想你的意思是星期几?

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;
于 2013-09-05T11:12:35.003 回答
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
于 2013-09-05T11:12:35.170 回答
3

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

int year = DateTime.Now.Year;
DateTime firstDayyear = new DateTime(year , 1, 1);
DateTime lastDayyear = new DateTime(year , 12, 31);
于 2013-09-05T11:07:03.160 回答
1

要获得最后一天,只需使用以下命令:

string lastdayofyear = new DateTime(DateTime.Now.Year, 12,31).DayOfWeek.ToString();
于 2013-09-05T11:18:16.740 回答
1

我会复制日期,将日期更改为 31,将月份更改为 12 月,然后您就有了最后一天。

于 2013-09-05T11:06:48.917 回答