C#获取指定月指定周的日期范围 根据当前时间获取本月开始日期和结束日期

by admin on 2020年1月3日

复制代码 代码如下:
   /**
     * 获取指定日期所在月的开始日期与结束日期
奥门威尼斯人吴乐城,     *威尼斯人网上娱乐, @param string $date
     * @param boolean 为true返回开始日期,否则返回结束日期
     * @return array
     * @access private
     */
    private function getMonthRange( $date, $returnFirstDay = true ) {
        $timestamp = strtotime( $date );
        if ( $returnFirstDay ) {
            $monthFirstDay = date( ‘Y-m-1 00:00:00’, $timestamp );
            return $monthFirstDay;
        } else {
            $mdays = date( ‘t’, $timestamp );
            $monthLastDay = date( ‘Y-m-‘ . $mdays . ‘ 23:59:59’,
$timestamp );
            return $monthLastDay;
        }
    }

        /// <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;
        }

 

            //当前时间
            DateTime dt = DateTime.Now;
            //本月第一天时间    
            DateTime dt_First = dt.AddDays(1 - (dt.Day));
            //获得某年某月的天数  
            int year = dt.Date.Year;
            int month = dt.Date.Month;
            int dayCount = DateTime.DaysInMonth(year, month);
            //本月最后一天时间  
            DateTime dt_Last = dt_First.AddDays(dayCount - 1);

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图