【问题标题】:get exact day in every month in DateTime在 DateTime 中获取每个月的确切日期
【发布时间】:2020-04-03 19:40:00
【问题描述】:

我正在尝试一年循环 12 次循环

for (var i = 1; i <= 12; i++) {
    DateTime.now().add(Duration(days: (i * 30))).toIso8601String())
}

我的代码工作正常,但它给出了不同的日子

如果我在今天 12 月 10 日运行循环,它会给我

  • 1 月 9 日
  • 2 月 8 日
  • 3 月 9 日

我想要这样的结果

  • 1 月 10 日
  • 2 月 10 日
  • 3 月 10 日

答案:我在该包裹jiffy 中找到了我的问题的答案@

dateOfCreated = Jiffy(dateOfCreated).add(months: 1);

【问题讨论】:

标签: flutter dart


【解决方案1】:

这应该对你有用...

final now = DateTime.now();
for(int i = 1; i<= 12; i++){
   print(DateTime(now.year, now.month + i, now.day).toIso8601String());
}

【讨论】:

    【解决方案2】:

    在循环中,您将 30 天添加到当前日期,但也有月份为 31/29/28 天。所以你应该添加月份的长度以获得下一个 10 日或其他日期

    void main() {
        var now = DateTime.now();
        for (var i = 1; i <= 12; i++) {
          final lastDay = DateTime(now.year, now.month + 1, 0).day;
          now = now.add(Duration(days: lastDay));
          print(now.toIso8601String());
        }
    }
    

    dartpad

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      相关资源
      最近更新 更多