我似乎無法找到一種方法來獲取當前周的日期名稱和日期,例如本周我正在尋找一種方法來獲得此結果:
List days = [
{"label": "Mon", "day": "18"},
{"label": "Tue", "day": "19"},
{"label": "Wed", "day": "20"},
{"label": "Thu", "day": "21"},
{"label": "Fri", "day": "22"},
{"label": "Sat", "day": "23"},
{"label": "Sun", "day": "24"},
];
我花了一段時間,但這是我能想到的最好的。如果有人有更好的想法,請分享它,謝謝。
import 'package:intl/intl.dart';
List getWeekDayList = [
{"label": "Mon", "day": getDateOfWeekDay('monday')},
{"label": "Tue", "day": getDateOfWeekDay('tuesday')},
{"label": "Wed", "day": getDateOfWeekDay('wednesday')},
{"label": "Thu", "day": getDateOfWeekDay('thursday')},
{"label": "Fri", "day": getDateOfWeekDay('friday')},
{"label": "Sat", "day": getDateOfWeekDay('saturday')},
{"label": "Sun", "day": getDateOfWeekDay('sunday')},
];
DateTime weekdayOf(DateTime time, int weekday) =>
time.add(Duration(days: weekday - time.weekday));
String getDateOfWeekDay(String weekday) {
final now = DateTime.now();
final df = DateFormat.d();
final int dayToGet = weekdayToNum[weekday]!;
return df.format(weekdayOf(now, dayToGet));
}
int getCurrentWeekDayInt() {
return DateTime.now().weekday - 1;
}
var weekdayToNum = {
'monday': 1,
'tuesday': 2,
'wednesday': 3,
'thursday': 4,
'friday': 5,
'saturday': 6,
'sunday': 7
};
uj5u.com熱心網友回復:
為了實作您的要求,我們需要解決兩個問題。
第一個是:找出每個作業日的名稱,我們可以使用一個串列:
List<String> weekdayNames = [
'Mon',
'Tue',
'Wed',
'Thu',
'Fri',
'Sat',
'Sun',
];
第二,計算出星期一是多少天前,我們可以使用 weekday 屬性
int monOffset = now.weekday-1
排除這兩個之后,物件的標簽將等于名稱串列中日期的索引,而 day 屬性將等于當前日期 - mondayOffset 我們要檢查的作業日
這是生成串列的完整代碼:
void main() {
List<String> weekdayNames = [
'Mon',
'Tue',
'Wed',
'Thu',
'Fri',
'Sat',
'Sun',
];
DateTime now = DateTime.now();
int monOffset = now.weekday-1;
List<Map<String, dynamic>> days = List.generate(
7,
(index) =>
{
'label': weekdayNames[index],
'day': now.day-monOffset index
}
);
print(days);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/334994.html
標籤:镖
