var now = new DateTime.now();
// Find the last day of the month.
var beginningNextMonth = (now.month < 12) ? new DateTime(now.year, now.month + 1, 1) : new DateTime(now.year + 1, 1, 1);
var lastDay = beginningNextMonth.subtract(new Duration(days: 1)).day;
print(lastDay); // 28 for February
我有当前日期,所以我构造下个月的第一天,然后从中减去一天,我还考虑了年份的变化。
**更新:**下面是一段简短的代码,但灵感来自Chris的零技巧:
var now = new DateTime.now();
// Find the last day of the month.
var lastDayDateTime = (now.month < 12) ? new DateTime(now.year, now.month + 1, 0) : new DateTime(now.year + 1, 1, 0);
print(lastDayDateTime.day); // 28 for February
7条答案
按热度按时间2izufjch1#
如果为下个月的日值提供零,则会得到上个月的最后一天
dy2hfwbg2#
如果要获取当月的最后一天,则需要参考下个月的0日
用一种简单的方法试试这个:
eimct9ow3#
这里有一种方法可以找到它:
我有当前日期,所以我构造下个月的第一天,然后从中减去一天,我还考虑了年份的变化。
**更新:**下面是一段简短的代码,但灵感来自Chris的零技巧:
如果您想通过编程方式执行此操作(例如,您将特定月份作为整数),则它具有额外的check/code。
cu6pst1q4#
这里有一个扩展,可能会有所帮助(参考Kai和Chris的回答)。
7bsow1i65#
另一种方法是使用Jiffy,它有endOf方法,可以很容易地得到几个单位的最后时刻,在本例中是月份:
b1uwtaje6#
如下所示:
year-month-lastDay 00:00:00.000
-〉* 该月最后一天的开始 *您可能需要该月的最后一个绑定/DateTime:
如下所示:
year-month-lastDay 23:59:59.999
-〉* 月末 *下面是如何在
extension on DateTime
的帮助下在一个月内获得两个边界:sf6xfgos7#