首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取特定月份的天数?

如何获取特定月份的天数?
EN

Stack Overflow用户
提问于 2019-02-09 21:11:58
回答 3查看 4.7K关注 0票数 5

在Dart语言中,如何获取特定月份的天数?

例如:

代码语言:javascript
复制
DateTime dateTime = DateTime(2017, 2, 1); //Feb 2017

例如,我如何获取2017年2月的最大天数?

我的问题是关于Dart语言的。

EN

回答 3

Stack Overflow用户

发布于 2019-02-09 21:31:00

您可以使用具有lastDayOfMonth方法的date_utils包。

添加依赖项:

代码语言:javascript
复制
dev_dependencies:
    date_utils: ^0.1.0

导入包:

代码语言:javascript
复制
import 'package:date_utils/date_utils.dart';

然后使用它:

代码语言:javascript
复制
final DateTime date = new DateTime(2017, 2);
final DateTime lastDay = Utils.lastDayOfMonth(date);
print("Last day in month : ${lastDay.day}");

结果:

月份的最后一天: 28

如果您不想只包含该函数的包,则定义如下:

代码语言:javascript
复制
/// 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));
}
票数 10
EN

Stack Overflow用户

发布于 2019-12-18 21:05:52

代码语言:javascript
复制
void main() {
  DateTime now = new DateTime.now();
  DateTime lastDayOfMonth = new DateTime(now.year, now.month+1, 0);
  print("N days: ${lastDayOfMonth.day}");
}

Source

票数 10
EN

Stack Overflow用户

发布于 2019-10-10 01:29:12

截至2019年10月,date_utils已有一年未更新,存在错误。取而代之的是尝试calendarro包,它正在定期更新,并提供了您想要的东西。

按照上述链接中的说明进行安装。实现如下所示:

代码语言:javascript
复制
DateTime lastDayOfMonth = DateUtils.getLastDayOfMonth(DateTime(fooYear, barMonth));
int lastDayOfMonthAsInt = lastDayOfMonth.day;

要自己完成,请执行以下操作:

代码语言:javascript
复制
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,请根据需要进行修改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54606548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档