Dart 如何找到月的最后一天?

Dart 如何找到月的最后一天?,dart,Dart,我正在尝试新的Google Dart语言,但我不知道如何获取本月的最后一天 这给了我当前的日期: var now = new DateTime.now(); 这里有一种方法可以找到它: var now=new DateTime.now(); //找到一个月的最后一天。 var beginningNextMonth=(now.month

我正在尝试新的Google Dart语言,但我不知道如何获取本月的最后一天

这给了我当前的日期:

var now = new DateTime.now();

这里有一种方法可以找到它:

var now=new DateTime.now();
//找到一个月的最后一天。
var beginningNextMonth=(now.month<12)?新日期时间(now.year,now.month+1,1):新日期时间(now.year+1,1,1);
var lastDay=开始下一个月减去(新的持续时间(天:1))。天;
打印(最后一天);//2月28日
我有当前日期,所以我构造下个月的第一天,然后从中减去一天。我也在考虑今年的变化

更新:同样的东西,这里的代码略短一些,但灵感来自Chris的零技巧:

var now=new DateTime.now();
//找到一个月的最后一天。
var lastDayDateTime=(now.month<12)?新日期时间(now.year,now.month+1,0):新日期时间(now.year+1,1,0);
打印(lastDayDateTime.day);//2月28日

如果您希望以编程方式执行此操作(例如,您将特定月份作为整数),则它具有额外的检查/代码。

为下一个月提供一个零的日值,则为您提供上一个月的最后一天

var date = new DateTime(2013,3,0);
print(date.day);  // 28 for February

请以简单的方式尝试此操作:

DateTime now = DateTime.now();
int lastday = DateTime(now.year, now.month + 1, 0).day;
另一种方法是使用。它的方法可以很容易地获得几个单位的最后时刻,在本例中为月份:

Jiffy().endOf(Units.MONTH);

这是DateTime的实际合法使用吗?如果是这样,我们是否需要更新DateTime的文档?整洁。我想这会一直保持下去?是的。这是保证行为。@FlorianLoitsch同样适用于新日期时间(2016,0,1)(2015年12月1日)。也可以保证吗?这给了我一个月的当前日期而不是最后一天。请注意,如果您正好在关闭夏令时的日期,减去1天(=24小时)将不起作用。在这种情况下,这可能并不重要,因为切换日期永远不会(?)在一个月的最后一天。你是对的。在一个月的最后一天有转换日。如果你想知道完整的日期而不仅仅是一个月的哪一天呢?