首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查月份的最后一天(日期列表)

检查月份的最后一天(日期列表)
EN

Stack Overflow用户
提问于 2022-10-09 16:44:32
回答 2查看 42关注 0票数 0

我有一个不同的DateTime列表,一年中的每个月有7-15天,间隔几天。例如: 01.07,04.07,09.07,14.07,20.07……,04.08,10.08问题:如何检查该日期是否是给定月份的最后一个日期?例如,23.07可能是07月份的最后一个日期。谢谢

我需要一个函数来检查。作为输入,我得到一个由Bloc增强的DateTime,所以我需要一个check函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-09 17:48:10

只需将一个添加到日期,看看是否在下个月:

代码语言:javascript
运行
复制
void main(List<String> arguments) {
  for (final w
      in '2022-01-01 2022-01-30 2022-01-31' ' 2022-02-01 2022-02-28 2024-02-28'
          .split(' ')) {
    // print(w);
    final wd = DateTime.parse(w);
    final isLastDay = isLastDayOfMonth(wd);
    print('$w is last day of month? $isLastDay');
  }
}

bool isLastDayOfMonth(DateTime when) {
  return DateTime(when.year, when.month, when.day + 1).day == 1;
}

### output:

2022-01-01 is last day of month? false
2022-01-30 is last day of month? false
2022-01-31 is last day of month? true
2022-02-01 is last day of month? false
2022-02-28 is last day of month? true
2024-02-28 is last day of month? false
票数 1
EN

Stack Overflow用户

发布于 2022-10-09 17:34:57

我会过滤这个月,对列表进行排序,然后输入第一个条目:

代码语言:javascript
运行
复制
void main() {
  List<DateTime> list = [DateTime(2000,06,23), DateTime(2000,06,21),DateTime(2000,06,22)];
  list = list.where((date) => (date.month == 6)).toList();
  list.sort((a,b) => b.day.compareTo(a.day));
  print(list[0]);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74006620

复制
相关文章

相似问题

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