我有PHP代码,我需要转换成c#。基本上它计算给定一周的5个日期。
PHP代码如下:
$period_week_start = new DateTime();
$monday = $period_week_start->setISODate(2016, 36)->format('Ymd');
$tuesday = $period_week_start->modify('+1 days')->format('Ymd');
20160815
20160816
我使用的c#代码如下:
var monday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Monday).ToString("yyyyMMdd");
var tuesday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)DayOfWeek.Tuesday).ToString("yyyyMMdd");
20160815
20160816
这确实给了我想要的输出,但我需要一种方法来传递"周NO",这样我就可以得到给定周的日期。
使用以下代码获取周号:
var currentCulture = CultureInfo.CurrentCulture;
var weekNo = currentCulture.Calendar.GetWeekOfYear(DateTime.Now,
currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek);
Thank you
试试这个
public static DateTime[] WeekDaysFromWeekNo(int Year, int WeekNumber)
{
DateTime start = new DateTime(Year, 1, 1).AddDays(7 * WeekNumber);
start = start.AddDays(-((int)start.DayOfWeek));
return Enumerable.Range(1, 7).Select(num => start.AddDays(num)).ToArray();
}
您可以更改范围,例如从星期一到星期五等等,并按您想要的方式格式化日期。