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 值是星期几。

来源: 谢斌个人博客C#中计算传入日期为所在年的第几周
转载请以链接形式标明本文地址!本文地址:https://www.xb02.com/article/122
发表评论

发表评论