Datetime 如何从Flatter中的特定周中查找工作日?

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

例如,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, 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))