当前位置:  开发笔记 > 编程语言 > 正文

计算下个月的最后一天

如何解决《计算下个月的最后一天》经验,为你挑选了1个好方法。

我试图在C#中使用DateTime函数来计算下个月的最后一天.

例如,今天是2015年12月17日.我希望DateTime函数返回2016年1月31日(下个月的最后一天).

我使用以下来计算下个月的第一天(这是有效的):

DateTime firstDayNextMonth = DateTime.Today.AddDays(-DateTime.Now.Day+1).AddMonths(1);

Ben Voigt.. 11

DateTime reference = DateTime.Now;
DateTime firstDayThisMonth = new DateTime(reference.Year, reference.Month, 1);
DateTime firstDayPlusTwoMonths = firstDayThisMonth.AddMonths(2);
DateTime lastDayNextMonth = firstDayPlusTwoMonths.AddDays(-1);
DateTime endOfLastDayNextMonth = firstDayPlusTwoMonths.AddTicks(-1);

演示:http://rextester.com/AKDI52378



1> Ben Voigt..:
DateTime reference = DateTime.Now;
DateTime firstDayThisMonth = new DateTime(reference.Year, reference.Month, 1);
DateTime firstDayPlusTwoMonths = firstDayThisMonth.AddMonths(2);
DateTime lastDayNextMonth = firstDayPlusTwoMonths.AddDays(-1);
DateTime endOfLastDayNextMonth = firstDayPlusTwoMonths.AddTicks(-1);

演示:http://rextester.com/AKDI52378


这个答案有一个很好的属性,许多其他答案缺乏*其他*而不是正确性.**它只调用一次"现在"**.请记住,每次调用它时,"Now"都会返回不同的值."Now"有可能在2015年12月返回一次结果,并在2016年1月返回一个纳秒的结果.现在,当然这意味着计算结果将是*错*,因为它已过时,但至少数学将一致且正确地完成.实际上,当你离月变化一个纳秒之后,没有办法准确回答"从现在起两个月"的问题.
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有