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());
  • 相关阅读:
    DataTable中的增删改查
    如何修改SQLServer的登录验证模式为混合验证模式(转载)
    asp.net C# 技术小点
    利用JQuery动态删除Table表格的行和列
    ASP.NET利用JQuery中的Aajax实现JSON数据后台交互
    MySQL Explain 详解
    Python字符串操作
    Linux中last的用法及参数,查看登陆系统用户的信息
    fedora 16 mysql远程连接
    Linux下MySQL 5.5.21 服务器日志配置
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/3570718.html
Copyright © 2011-2022 走看看