zoukankan      html  css  js  c++  java
  • C#获取指定月指定周的日期范围

     /// <summary>
            
    /// 获取指定月份指定周数的开始日期
            
    /// </summary>
            
    /// <param name="year">年份</param>
            
    /// <param name="month">月份</param>
            
    /// <param name="index">周数</param>
            
    /// <returns></returns>
            private DateTime GetStartDayOfWeeks(int year, int month, int index)
            {
                
    if (year < 1600 || year > 9999)
                {
                    MessageBox.Show(
    "年份超限");
                    
    return DateTime .MinValue ;
                }
                
    if (month < 0 || month > 12)
                {
                    MessageBox.Show(
    "月份错误");
                    
    return DateTime .MinValue ;
                }
                
    if (index < 1)
                {
                    MessageBox.Show(
    "周数错误");
                    
    return DateTime.MinValue;
                }
                DateTime startMonth 
    = new DateTime(year, month, 1);  //该月第一天
                int dayOfWeek = 7;
                
    if (Convert.ToInt32(startMonth.DayOfWeek.ToString("d")) > 0)
                    dayOfWeek 
    = Convert.ToInt32(startMonth.DayOfWeek.ToString("d"));  //该月第一天为星期几
                DateTime startWeek = startMonth.AddDays(1 - dayOfWeek);  //该月第一周开始日期
                
    //DateTime startDayOfWeeks = startWeek.AddDays((index - 1) * 7);  //index周的起始日期
                DateTime startDayOfWeeks = startWeek.AddDays(index * 7);  //index周的起始日期
                if ((startDayOfWeeks - startMonth.AddMonths(1)).Days > 0)  //startDayOfWeeks不在该月范围内
                {
                    MessageBox.Show(
    "输入周数大于本月最大周数");
                    
    return DateTime.MinValue;
                }
                
    return startDayOfWeeks;
            }

      这里根据规则的不同,使用不同的代码,以2007年7月为例,7月1日为星期日
     

        DateTime startDayOfWeeks = startWeek.AddDays((index - 1* 7);  //index周的起始日期

    这样获取的7月第一周的起始日期为2007-6-25
     

        DateTime startDayOfWeeks = startWeek.AddDays(index * 7);  //index周的起始日期

    这样获取的7月第一周的起始日期为2007-7-2

      在调用时,先判断一下返回值是否为DateTime.MinValue再使用
     

            DateTime start = GetStartDayOfWeeks(200771);
           
    if (start != DateTime.MinValue)
            {
                MessageBox.Show(start.ToShortDateString());
            }

    该周的结束日期只要在开始日期基础上加6天就可以了
     

            DateTime end = start.AddDays(6);
            MessageBox.Show(end.ToShortDateString());
  • 相关阅读:
    openssl生成公钥私钥对 加解密
    boost replace_if replace_all_regex_copy用法
    PS 图像滤镜— — USM 锐化
    使用boost库生成 随机数 随机字符串
    改动Android设备信息,如改动手机型号为iPhone7黄金土豪版!
    验证(Verification)与确认(Validation)的差别
    Spring-SpringMVC-Hibernate整合
    全面整理的C++面试题
    Metropolis Hasting算法
    捕捉到来自宇宙深空的神奇X-射线信号
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/3570718.html
Copyright © 2011-2022 走看看