【问题标题】:How to calculate and get the list of months between two year in Flutter?如何在 Flutter 中计算并获取两年之间的月份列表?
【发布时间】:2021-02-18 06:39:35
【问题描述】:

试图获取给定年份范围内所有月份的列表。

  var startYear = DateTime(1999);
  var endYear = DateTime(2021);

结果应该是这样的

List monthsInRange = [
Jan 1999,
Feb 1999,
Mar 1999,
.
.
.
.
.
.
.
.
.
.
.
Dec 2021
]

任何帮助都会很棒。

【问题讨论】:

    标签: flutter datetime


    【解决方案1】:

    首先将 intl dep 添加到您的 pubspec.yaml

    dependencies:
      flutter:
        sdk: flutter
      intl: ^0.16.1
    

    导入包:

    import 'package:intl/intl.dart';
    

    然后创建一个函数:

    List<String> listmonthyear(startYear, endYear) {
      List<String> listdate = []; //if you want String
      while (startYear != endYear) {
        listdate.add(DateFormat.yMMM().format(startYear).toString());
        startYear =
            new DateTime(startYear.year, startYear.month + 1, startYear.day);
      }
      return listdate;
    }
    

    【讨论】:

    • 如果 startYear.day 是 30 或 31 并且下个月更短,这将失败。您最终将跳过下个月,并滚动到下个月的月初。两个提示:(1) 始终使用 .utc。 (2) 仅当 day = 1 时才使用 month + 1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    相关资源
    最近更新 更多