我知道一年,一年中的一周以及一周中的一周
有了这些信息,我想得到当前的日期
例如,
年份:2018年
一年中的一周:01
星期几:3
我希望在03/01/2018之前获得价值。
答案 0 :(得分:1)
您可以使用此方法获取一周的第一天:
public static DateTime FirstDateOfWeek(int year, int weekOfYear, System.Globalization.CultureInfo ci = null)
{
if (ci == null) ci = System.Globalization.CultureInfo.CurrentCulture;
DateTime jan1 = new DateTime(year, 1, 1);
int daysOffset = ((int)ci.DateTimeFormat.FirstDayOfWeek) - ((int) jan1.DayOfWeek);
DateTime firstWeekDay = jan1.AddDays(daysOffset);
int firstWeek = ci.Calendar.GetWeekOfYear(jan1, ci.DateTimeFormat.CalendarWeekRule, ci.DateTimeFormat.FirstDayOfWeek);
if (firstWeek <= 1|| firstWeek > 50 )
weekOfYear--;
return firstWeekDay.AddDays(weekOfYear * 7);
}
然后您只需要向其添加dayOfWeek - 1
:
int year = 2018;
int weekOfYear = 01;
int dayOfWeek = 03;
DateTime firstDateOfWeek = FirstDateOfWeek(year, weekOfYear);
DateTime desiredResult = firstDateOfWeek.AddDays(dayOfWeek - 1);
答案 1 :(得分:0)
首先获得一年中的一天,乘以一年中的一周* 7加上星期几:
int dayOfYear = weekOfYear*7 + dayOfWeek
然后获取与一年中第一天相对应的日期时间,并添加天数:
DateTime myDate = new DateTime(year, 1, 1).AddDays(dayOfYear - 1);
要将其作为具有所需格式的字符串,请使用:
string myString = myDate.ToString("dd/MM/yyyy");