3 回答
TA贡献1810条经验 获得超5个赞
我会做这样的事情:
将日期从字符串解析为 DateTime 对象(如果需要)
添加一周中的当前天数 * -1(将其变为负数)+ 1
string s = "2018-08-23 13:26";
DateTime dt = DateTime.ParseExact(s, "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
DateTime startOfWeek = dt.AddDays(((int)(dt.DayOfWeek) * -1) + 1);
Console.WriteLine(startOfWeek);
编辑:如果您对星期日到下星期一感到困扰,那么请更改星期日以从当前日期中删除 7 天,如下所示;
string s = "2018-08-17 13:26";
DateTime dt = DateTime.ParseExact(s, "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
bool isSunday = dt.DayOfWeek == 0;
var dayOfweek = isSunday == false ? (int)dt.DayOfWeek : 7;
DateTime startOfWeek = dt.AddDays(((int)(dayOfweek) * -1) + 1);
Console.WriteLine(startOfWeek);
TA贡献1111条经验 获得超0个赞
使用日期变量获取每周的星期一和星期日。可以轻松尝试使用日期变量。
DateTime date = new DateTime(2019, 12, 1);
int day = (int) date.DayOfWeek;
DateTime Monday = date.AddDays((-1) * (day == 0 ? 6 : day - 1));
DateTime Sunday = date.AddDays((1) * (day== 0 ? day : 7 - day)); ```
TA贡献1816条经验 获得超6个赞
这是一个版本,为您提供一周中的星期一(假设周从星期一开始并在星期日结束)
DateTime dt = DateTime.Now;
DateTime startOfWeek = dt.AddDays((((int)(dt.DayOfWeek) + 6) % 7) * -1);
Console.WriteLine(startOfWeek);
- 3 回答
- 0 关注
- 175 浏览
添加回答
举报