如何在俱乐部度过一周又一天,就像“;21Fr”;转换为DateTime格式

本文关键字:21Fr 转换 格式 DateTime 就像 俱乐部 一天 一周 | 更新日期: 2023-09-27 18:25:07

嗨,我有一年中的日期和星期,格式为"21Fr"(一年中第21周和星期五),时间为"06:00"。我想把这两个值结合起来,得到下面格式的输出?任何帮助都将是非常可观的

2014年5月23日06:00:00

如何在俱乐部度过一周又一天,就像“;21Fr”;转换为DateTime格式

I强烈建议尽可能更改输入格式。然而,这里有一种方法:

// parse the input
string input = "21Fr";
// assuming week number is always 2 characters. e.g.: 01, 02, ..., 21, ...
int weeks = int.Parse(input.Substring(0, 2));
// assuming abbreviated day names like this
string[] abbrDayNames = { "Su", "Mo", "Tu", "We","Th", "Fr", "Sa" };
int dayOfWeekValue = Array.IndexOf(abbrDayNames, input.Substring(2));
DayOfWeek dayOfWeek = (DayOfWeek)dayOfWeekValue;
// now let's build the DateTime
// start from first day of year, 6:00 AM
DateTime parsed = new DateTime(DateTime.Now.Year, 1 ,1, 6, 0, 0);
// add first part, weeks
parsed = parsed.AddDays((weeks - 1) * 7);
// reset to first day of week
parsed = parsed.AddDays(-(int)parsed.DayOfWeek);
// then add the second part, day of week
parsed = parsed.AddDays((int)dayOfWeek);

这也假设(基于您的样本输出)第21周意味着您在一年中的第21周