C# 如何在C中获取一周中的一天的日期#

C# 如何在C中获取一周中的一天的日期#,c#,C#,我试着根据一周中某一天的顺序来获取它的日期,比如 GetDate(22, 4); 需要返回当年第22周第4天的日期。我该怎么做 void Main() { int months; var year = DateTime.Now.ToString("yyyy"); months = GetWeeksInYear( Convert.ToInt32(year)); Console.WriteLine(months); } public int GetWeeksIn

我试着根据一周中某一天的顺序来获取它的日期,比如

 GetDate(22, 4);
需要返回当年第22周第4天的日期。我该怎么做

void Main()
{
    int months;
    var year = DateTime.Now.ToString("yyyy");
    months = GetWeeksInYear( Convert.ToInt32(year));
    Console.WriteLine(months);
}

public int GetWeeksInYear(int year)
{
      DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
      DateTime date1 = new DateTime(year, 12, 31);
      Calendar cal = dfi.Calendar;
      return  cal.GetWeekOfYear(date1, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);    
}

public int GetDate(int weekNo, int dayNo)
{
  return // Date
}

您只需添加从年初开始的天数:

var dt = new DateTime(year, 1, 1);
dt = dt.AddDays(weekNo * 7 + dayNo);
var date = dt.Date;

您只需添加从年初开始的天数:

var dt = new DateTime(year, 1, 1);
dt = dt.AddDays(weekNo * 7 + dayNo);
var date = dt.Date;

我想一个简单的方法是把每年的1月1日加上天数

DateTime day = new DateTime(year, 1, 1).AddDays((week * 7) + days);

我想一个简单的方法是把每年的1月1日加上天数

DateTime day = new DateTime(year, 1, 1).AddDays((week * 7) + days);

PixRead一年中的一周是日历计算和区域相关值,所以在给出周数时必须考虑… 所以你肯定错过了使用类似

CultureInfo.CurrentCulture.Calendar;

PixRead一年中的一周是日历计算和区域相关值,所以在给出周数时必须考虑… 所以你肯定错过了使用类似

CultureInfo.CurrentCulture.Calendar;

您可能希望使用
public DateTime GetDate
,而不是
int
作为返回类型。由于闰年的原因,您至少需要年份。我可能会找到
GetDate(1,1)
应该返回的值,然后添加
21*7+3
天。您是将“周”视为一整周(周日到周六或文化差异)还是一组7天?i、 e.应
GetDate(1,1)
返回一年中的第一个星期日(或其他日期),还是应该始终返回1月1日?您可能希望使用
public DateTime GetDate
,而不是
int
作为返回类型。由于闰年的原因,您至少需要年份。我可能会找到
GetDate(1,1)
应该返回的值,然后添加
21*7+3
天。您是将“周”视为一整周(周日到周六或文化差异)还是一组7天?i、 e.应
GetDate(1,1)返回一年中的第一个星期日(或其他),还是应该始终返回1月1日?