我有这段代码可以根据今天的日期获取一周的第一天。

CultureInfo defaultCultureInfo = CultureInfo.CurrentCulture;
DayOfWeek firstDay = _culture.DateTimeFormat.FirstDayOfWeek;
DateTime firstDayInWeek = dayInWeek.Date;
while (firstDayInWeek.DayOfWeek != firstDay)
    firstDayInWeek = firstDayInWeek.AddDays(-1);
return firstDayInWeek;


如何在这里返回biweeklyFirstDay

例如:今天是2014年5月27日。我得到的结果是

firstDayInWeek = 2014年5月26日。


但是我需要的是2014年5月19日。

简而言之,我想根据系统今天的日期返回5月19日,6月2日,6月30日,7月14日,7月28日,8月​​11日。

任何示例将不胜感激。

最佳答案

使用此代码获取包含firstDayInWeek的星期数。

var calendar = System.Threading.Thread.CurrentThread.CurrentCulture.Calendar;

var week = calendar.GetWeekOfYear(firstDayInWeek, CalendarWeekRule.FirstDay, firstDay);


然后将其除以2,看看余数是否为0(表示是偶数还是奇数周-即第18周与第19周)。

您指定的日期是在第21周,因此以下代码检测到该日期不能被2整除,然后减去7天,得出第20周的第一天。

if (currentWeek % 2 != 0)
    firstDayInWeek = firstDayInWeek.AddDays(-7);

关于c# - 如何在C#中获得BiWeekly付款期?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23506646/

10-13 05:05