从当前月份生成 1 年以上的列表月份
Generate list month 1 year above from current month
目前我想创建函数来生成 1 年以上的列表(例如当前月份是 2021 年 8 月,我想创建 2021 年 7 月 - 2020 年 8 月的列表)任何推荐 class 或内置在飞镖/扑动中发挥作用?
这是当前代码
void getListOfMonthAYear() {
List<String> months = [];
Map<int, String> listOfMonth = {
1: 'January',
2: 'February',
3: 'March',
4: 'April',
5: 'May',
6: 'June',
7: 'July',
8: 'August',
9: 'September',
10: 'October',
11: 'November',
12: 'December'
};
DateTime currentDate = DateTime.now();
int listMonthFor1Year = DateTime.monthsPerYear;
int currentMonth = DateTime.now().month;
for (int i = 0; i < listMonthFor1Year; i++) {
print(listOfMonth[currentMonth - i]);
}
}
1 月之后,列表变为空(是的,因为找不到低于 1 的月份)。
是这样的吗?
void main() {
getMonthAYearFromCurrent().forEach(print);
// August 2021
// July 2021
// June 2021
// May 2021
// April 2021
// March 2021
// February 2021
// January 2021
// December 2020
// November 2020
// October 2020
// September 2020
}
List<String> getMonthAYearFromCurrent({int length = 12}) {
const listOfMonth = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
];
final currentDate = DateTime.now();
final months = <String>[];
for (var i = 0; i < length; i++) {
final yearInt = currentDate.year - (0 - (currentDate.month - i) + 12) ~/ 12;
final monthInt = (currentDate.month - i - 1) % 12;
months.add('${listOfMonth[monthInt]} $yearInt');
}
return months;
}
目前我想创建函数来生成 1 年以上的列表(例如当前月份是 2021 年 8 月,我想创建 2021 年 7 月 - 2020 年 8 月的列表)任何推荐 class 或内置在飞镖/扑动中发挥作用?
这是当前代码
void getListOfMonthAYear() {
List<String> months = [];
Map<int, String> listOfMonth = {
1: 'January',
2: 'February',
3: 'March',
4: 'April',
5: 'May',
6: 'June',
7: 'July',
8: 'August',
9: 'September',
10: 'October',
11: 'November',
12: 'December'
};
DateTime currentDate = DateTime.now();
int listMonthFor1Year = DateTime.monthsPerYear;
int currentMonth = DateTime.now().month;
for (int i = 0; i < listMonthFor1Year; i++) {
print(listOfMonth[currentMonth - i]);
}
}
1 月之后,列表变为空(是的,因为找不到低于 1 的月份)。
是这样的吗?
void main() {
getMonthAYearFromCurrent().forEach(print);
// August 2021
// July 2021
// June 2021
// May 2021
// April 2021
// March 2021
// February 2021
// January 2021
// December 2020
// November 2020
// October 2020
// September 2020
}
List<String> getMonthAYearFromCurrent({int length = 12}) {
const listOfMonth = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
];
final currentDate = DateTime.now();
final months = <String>[];
for (var i = 0; i < length; i++) {
final yearInt = currentDate.year - (0 - (currentDate.month - i) + 12) ~/ 12;
final monthInt = (currentDate.month - i - 1) % 12;
months.add('${listOfMonth[monthInt]} $yearInt');
}
return months;
}