C#中计算传入日期为所在年的第几周
ASP.NET(C#)中计算传入日期为所在年的第几周的代码如下:
/// <summary>
/// 返回所在年的第几周
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public int GetWeekOfYear(DateTime datetime)
{
//声明存储结果的变量
int intWeekOfYear = 0;
//获取该年1月1日的日期
DateTime dtFirstDay = new DateTime(datetime.Year, 1, 1);
//目标日期距离该年第一天的天数
int intDaysCount = Convert.ToInt32((datetime - dtFirstDay).TotalDays);
//目标日期距离该年第一周第一天的天数(sunday为0,monday为1)
intDaysCount += Convert.ToInt32(dtFirstDay.DayOfWeek);
//目标日期所在的周(此处做上取整运算)
intWeekOfYear = int.Parse(Math.Ceiling(intDaysCount / 7.0).ToString());
//返回计算结果
return intWeekOfYear;
}
实现原理:
计算传入时间与传入时间所在年第一周第一天的天数间隔,再将天数间隔除以7后做上取整,得出的结果即传入日期为所在年的第几周。
系统属性介绍:
public double TotalDays { get; }:获取以整天数和天的小数部分表示的当前 System.TimeSpan 结构的值。返回此实例表示的总天数。
public DayOfWeek DayOfWeek { get; }:获取此实例所表示的日期是星期几。返回一个 System.DayOfWeek 枚举常量,指示此 System.DateTime 值是星期几。