Datetime 如何从Flatter中的特定周中查找工作日?
例如,20.5周包含2020年5月11日至2020年5月17日 代码必须显示这些日期范围。但代码显示:2020-05-12-2020-05-18 这是密码Datetime 如何从Flatter中的特定周中查找工作日?,datetime,flutter,week-number,Datetime,Flutter,Week Number,例如,20.5周包含2020年5月11日至2020年5月17日 代码必须显示这些日期范围。但代码显示:2020-05-12-2020-05-18 这是密码 DateTime getDateByWeekNumber({ int week, int year, bool start }) { DateTime date; var days = ((week - 1) * 7) + (start ? 0: 6); date = DateTime.utc(2020, 1, day
DateTime getDateByWeekNumber({
int week,
int year,
bool start
}) {
DateTime date;
var days = ((week - 1) * 7) + (start ? 0: 6);
date = DateTime.utc(2020, 1, days);
return date;
}
有人能帮忙吗?这应该行得通
DateTime getDateByWeekNumber({int week, int year, bool start}) {
DateTime date;
var days = ((week - 1) * 7) + (start ? -1 : 5);
date = DateTime.utc(2020, 1, days);
return date;
}
我们需要知道一年的第一天是否在周四之前
DateTime getDateByWeekNumber({int week, int year, bool start}) {
DateTime startOfaYear = DateTime.utc(year, 1, 1);
int startOfaYearWeekDay = startOfaYear.weekday;
DateTime firstWeekOfaYear = startOfaYearWeekDay < 4
? startOfaYear.subtract(Duration(days: startOfaYearWeekDay - 1))
: startOfaYear.add(Duration(days: 8 - startOfaYearWeekDay));
DateTime startOfNWeek = firstWeekOfaYear.add(Duration(days: (week - 1) * 7));
return start ? startOfNWeek : startOfNWeek.add(Duration(days: 6));
}
DateTime getDateByWeekNumber({int week,int year,bool start}){
DateTime startOfaYear=DateTime.utc(年份,1,1);
int startOfaYearWeekDay=startofayer.weekday;
DateTime firstWeekOfaYear=startOfaYearWeekDay<4
?开始日期减去(持续时间(天:开始日期工作日-1))
:startOfaYear.add(持续时间(天:8-startOfaYearWeekDay));
DateTime startOfNWeek=firstWeekOfaYear.add(持续时间(天:(第1周)*7));
返回start?startOfNWeek:startOfNWeek.add(持续时间(天数:6));
}
您的代码输出是第1周的开始日期:2020-01-01第1周的结束日期:2020-01-01,但应该是第2周的开始日期:2019-12-30第1周的结束日期:2020-01-05,谢谢注意。我更新了代码,我使用-1作为开始,因为今年从周三开始,为了匹配输出,应该添加5以匹配开始日期感谢您的回答。。您的代码在2020年可以顺利运行,但在2021年不起作用编辑startOfaYear.add(持续时间(天:8-startOfaYearWeekDay))代码>