首页 > 解决方案 > 如何在飞镖中获得一周的开始或结束

问题描述

如何在飞镖中获得一周的开始或结束?一个例子是如果三天前是星期一,今天是星期三,我如何使用飞镖找到一周的开始,即星期一

标签: datetimedart

解决方案


您可以使用https://api.dart.dev/stable/2.5.1/dart-core/DateTime/weekday.html从 DateTime 获取工作日,并从您的日期中添加/减去此数字:

void main() {
  final date = DateTime.parse('2019-10-08 15:43:03.887');
  
  print('Date: $date');
  print('Start of week: ${getDate(date.subtract(Duration(days: date.weekday - 1)))}');
  print('End of week: ${getDate(date.add(Duration(days: DateTime.daysPerWeek - date.weekday)))}');
}

DateTime getDate(DateTime d) => DateTime(d.year, d.month, d.day);

更新

请阅读并支持lrn的答案。他对这件事的了解比我多得多。:)


推荐阅读