在Dart语言中,如何获取特定月份的天数?
例如:
DateTime dateTime = DateTime(2017, 2, 1); //Feb 2017例如,我如何获取2017年2月的最大天数?
我的问题是关于Dart语言的。
发布于 2019-02-09 21:31:00
您可以使用具有lastDayOfMonth方法的date_utils包。
添加依赖项:
dev_dependencies:
date_utils: ^0.1.0导入包:
import 'package:date_utils/date_utils.dart';然后使用它:
final DateTime date = new DateTime(2017, 2);
final DateTime lastDay = Utils.lastDayOfMonth(date);
print("Last day in month : ${lastDay.day}");结果:
月份的最后一天: 28
如果您不想只包含该函数的包,则定义如下:
/// The last day of a given month
static DateTime lastDayOfMonth(DateTime month) {
var beginningNextMonth = (month.month < 12)
? new DateTime(month.year, month.month + 1, 1)
: new DateTime(month.year + 1, 1, 1);
return beginningNextMonth.subtract(new Duration(days: 1));
}发布于 2019-12-18 21:05:52
void main() {
DateTime now = new DateTime.now();
DateTime lastDayOfMonth = new DateTime(now.year, now.month+1, 0);
print("N days: ${lastDayOfMonth.day}");
}发布于 2019-10-10 01:29:12
截至2019年10月,date_utils已有一年未更新,存在错误。取而代之的是尝试calendarro包,它正在定期更新,并提供了您想要的东西。
按照上述链接中的说明进行安装。实现如下所示:
DateTime lastDayOfMonth = DateUtils.getLastDayOfMonth(DateTime(fooYear, barMonth));
int lastDayOfMonthAsInt = lastDayOfMonth.day;要自己完成,请执行以下操作:
int daysIn({int month, int forYear}){
DateTime firstOfNextMonth;
if(month == 12) {
firstOfNextMonth = DateTime(forYear+1, 1, 1, 12);//year, month, day, hour
}
else {
firstOfNextMonth = DateTime(forYear, month+1, 1, 12);
}
int numberOfDaysInMonth = firstOfNextMonth.subtract(Duration(days: 1)).day;
//.subtract(Duration) returns a DateTime, .day gets the integer for the day of that DateTime
return numberOfDaysInMonth;
}如果需要datetime,请根据需要进行修改。
https://stackoverflow.com/questions/54606548
复制相似问题