简体   繁体   English

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

[英]How to get date of a day in a week in C#

I am trying to get Date of a specific day based on its sequence in a week like 我正在尝试根据一周中的顺序获取特定日期的日期

 GetDate(22, 4);

which needs to return the date of 4th day in 22nd weeks of current year. 需要返回当年第22周第4天的日期。 How can I do this? 我怎样才能做到这一点?

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
}

You can just add the number of days from the beginning of the year: 您只需添加从年初开始的天数:

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);

每年的第一个星期是日历计算和与语言环境相关的值,因此在提供星期数时您必须考虑到这一点...因此,您肯定会漏掉类似

CultureInfo.CurrentCulture.Calendar;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM