.Net时间计算函数,统计某一天是一年的第几周,这一周从哪天开始到哪天结束

    

       /// <summary>

        /// 计算某年第一周的天数
        /// </summary>
        /// <param name="dt">某年中的一个时间</param>
        /// <returns></returns>
        public static int DaysInFirstweekInYear(DateTime dt)
        {
            DateTime FirstDate = Convert.ToDateTime(string.Format("{0}-1-1", dt.Year));
            int DayOfWeekInYear = DayOfWeek(FirstDate);
            int DaysInFirstWeek = 8 - DayOfWeekInYear;
            return DaysInFirstWeek;
        }

        /// <summary>
        /// 一年中的第几周
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static int WeekOfYear(DateTime dt)
        {
            int days = DaysInFirstweekInYear(dt);
            int dayofyear = dt.DayOfYear;
            if (dayofyear < days) return 1;
            else
            {
                int week2 = (int)Math.Ceiling((double)(dayofyear - days) / (double)7);
                return week2 + 1;
            }
        }
        /// <summary>
        /// 传入某一天,输出这一周的起始日期
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime[] DatesIncludeDay(DateTime dt)
        {
            DateTime[] dts = new DateTime[2];
            int dayofweek = DayOfWeek(dt);
            dts[0] = dt.AddDays(1 - dayofweek);
            dts[1] = dt.AddDays(7 - dayofweek);
            return dts;
        }
        /// <summary>
        /// 计算星期几,转换为数字
        /// </summary>
        /// <param name="dt">某天的日期</param>
        /// <returns></returns>
        public static int DayOfWeek(DateTime dt)
        {
            string strDayOfWeek = dt.DayOfWeek.ToString().ToLower();
            int intDayOfWeek = 0;
            switch (strDayOfWeek)
            {
                case "monday":
                    intDayOfWeek = 1;
                    break;
                case "tuesday":
                    intDayOfWeek = 2;
                    break;
                case "wednesday":
                    intDayOfWeek = 3;
                    break;
                case "thursday":
                    intDayOfWeek = 4;
                    break;
                case "friday":
                    intDayOfWeek = 5;
                    break;
                case "saturday":
                    intDayOfWeek = 6;
                    break;
                case "sunday":
                    intDayOfWeek = 7;
                    break;
            }
            return intDayOfWeek;

        }




调用:

    DateTime dt = Convert.ToDateTime("2013-1-6");
    Dictionary<string, DateTime> dict = new Dictionary<string, DateTime>();
    dict.Add("0001", DateTime.Now.AddDays(-100));
    dict.Add("0002", DateTime.Now.AddDays(-99));
    dict.Add("0003", DateTime.Now.AddDays(-98));
    dict.Add("0004", DateTime.Now.AddDays(-97));
    dict.Add("0005", DateTime.Now.AddDays(-96));
    dict.Add("0006", DateTime.Now.AddDays(-95));
    dict.Add("0007", DateTime.Now.AddDays(-94));
    dict.Add("0008", DateTime.Now.AddDays(-93));
    dict.Add("0009", DateTime.Now.AddDays(-92));
    dict.Add("0010", DateTime.Now.AddDays(-91));
    dict.Add("0011", DateTime.Now.AddDays(-90));
    dict.Add("0012", DateTime.Now.AddDays(-89));
    dict.Add("0013", DateTime.Now.AddDays(-88));
    dict.Add("0014", DateTime.Now.AddDays(-87));
    dict.Add("0015", DateTime.Now.AddDays(-86));
    dict.Add("0016", DateTime.Now.AddDays(-85));
    dict.Add("0017", DateTime.Now.AddDays(0));
    dict.Add("0018", DateTime.Now.AddDays(1));
    dict.Add("0019", DateTime.Now.AddDays(2));
    string str = "";
    foreach(KeyValuePair<string,DateTime> kv in dict)
    {
        DateTime[] dts = Common.OperateText.DatesIncludeDay(kv.Value);
        str = str + string.Format("{0},第{1}周,时间{2:yyyy-MM-dd},本周从{3:yyyy-MM-dd}到{4:yyyy-MM-dd} <br/>",kv.Key,Common.OperateText.WeekOfYear(kv.Value),kv.Value,dts[0],dts[1]);
    }

Response.Write(str);


效果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值