我需要查找一年中的周数,并在星期五上午10:00开始新的一周。 如果我只设定开始的日期是星期五,这似乎很容易,这意味着星期五凌晨0:00 但是..我可以在周五上午10点设置它吗? 目前,我使用此代码计算周数
private int GetWeek(DateTime date)
{
DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
Calendar cal = dfi.Calendar;
return cal.GetWeekOfYear(date, dfi.CalendarWeekRule, DayOfWeek.Friday);
}
任何人都可以帮助我吗? 提前谢谢!
答案 0 :(得分:0)
您可以查看时间来确定您在哪个星期:
private int GetWeek(DateTime date)
{
DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
Calendar cal = dfi.Calendar;
var weeknum= cal.GetWeekOfYear(date, dfi.CalendarWeekRule, DayOfWeek.Friday);
if (date.TimeOfDay.Hours<10)
{
weeknum -= 1;
}
return weeknum;
}
但是,在您使用此解决方案之前,您应该考虑一些基于星期五下降时可能出现的情况。例如:
private void Form1_Load(object sender, EventArgs e)
{
GetWeekHelper(DateTime.Parse("2014-01-03 11:00:00")); //2
GetWeekHelper(DateTime.Parse("2015-01-02 11:00:00")); //2
GetWeekHelper(DateTime.Parse("2016-01-01 11:00:00")); //1
GetWeekHelper(DateTime.Parse("2016-01-01 9:00:00")); //0
}
private void GetWeekHelper(DateTime date)
{
Console.WriteLine(String.Format("{0} - {1}", date.ToString(), GetWeek(date)));
}
由于这是您的业务逻辑,您需要确定这些值的正确性。