datetime - 如何在飞镖中获得一周的开始或结束
问题描述
如何在飞镖中获得一周的开始或结束?一个例子是如果三天前是星期一,今天是星期三,我如何使用飞镖找到一周的开始,即星期一
解决方案
您可以使用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的答案。他对这件事的了解比我多得多。:)
推荐阅读
- excel - 运行时错误 1004 - 范围类的自动筛选方法失败
- ios - 需要 iOS 12.3.1 (16F203) 支持文件
- java - ServerSocket如何接收多个文件
- c# - 无法使用 UWP 应用程序访问我系统上的 Word 文档
- php - Laravel 中的文件上传路径不正确
- javascript - 在转到下一个命令之前,无法让 Javascript myFunction() 运行 var requiredFields = document.getElementById
- python - 如何在多个应用程序模板中使用 Django Haystack whoosh 搜索字段
- javascript - 我如何检查该函数是否存在于我的班级中
- xcode - 带有 Safari 视图控制器的客户端证书
- c - C编程中数组中缺少数字