如何从dart中的周数和年份获取dateTime

0sgqnhkj  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(163)

如何在dart中从周数和年中获取datTime示例,
年= 2021周= 35返回开始日期= 29-08-2021结束日期= 04-09-2021

v1l68za4

v1l68za41#

您可能正在寻找ISO 8601周数(而不是其他周数系统之一)。
如果是这样的话,第一周总是1月4日的那一周,一周总是从星期一开始,在星期天结束。由此,您可以计算任何ISO周数的星期一。下面是一个紧凑的dart函数,可以做到这一点:

DateTime mondayOfIsoWeek(int isoYear, int isoWeek) {
    // ISO week 1 always has January 4th in it
    final jan4 = DateTime(isoYear, 1, 4);

    // look back to find the Monday of that week
    final mondayBeforeOrOnJan4 = jan4.add(Duration(days: -(jan4.weekday - 1)));

    // add weeks to arrive at the Monday of isoWeek
    return mondayBeforeOrOnJan4.add(Duration(days: 7 * (isoWeek - 1)));
  }

相关问题