我是靠谱客的博主 坚强河马,最近开发中收集的这篇文章主要介绍[原]获取指定日期WeekOfMonth,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

c#

 

         ///   <summary>
        
///  获取指定日期为指定年月份的第几周
        
///   </summary>
         public   int  GetWeekOfMonth(DateTime date)
        {
            DateTime firstDayInMonth 
=  DateTime.Parse( string .Format( " {0}-{1}-01 " , date.Year, date.Month));

            
// 不计入本月周的总天数,如1号为星期五,则1、2、3都不计入将要计算的周内
             int  exceptDays  =   0 ;

            
if  (firstDayInMonth.DayOfWeek  !=  DayOfWeek.Monday)
            {
                
// + 2的含义为计算时需要减去1号和date当天的日期
                
// 如果不减去date当天,则当date为星期天时,则刚好在除7后为正确值,再加1就会多一周
                exceptDays  =   7   -  ( int )firstDayInMonth.DayOfWeek  +   2 ;
            }

            
// 指定的日期减去不计算在周内的日期数
             return  (date.Day  -  exceptDays)  /   7   +  date.Day  <  exceptDays  ?   0  :  1 ;
        }

 

SQL:

 

DECLARE   @Date   DateTime  
SET   @Date   =   ' 2009-06-29 '

SELECT   CASE   WHEN  ( DATEPART (WEEKDAY, CONVERT ( DATETIME , CONVERT ( VARCHAR ( 6 ), @Date , 112 +   ' 01 ' ))  -   1 =   1   THEN  
(
DATEPART ( DAY @Date -  ( 7   -  ( DATEPART (WEEKDAY, CONVERT ( DATETIME , CONVERT ( VARCHAR ( 6 ), @Date , 112 +   ' 01 ' ))  -   1 +   2 ))  /   7   +  
CASE   WHEN   DATEPART ( DAY , @Date )   <  ( 7   -  ( DATEPART (WEEKDAY, CONVERT ( DATETIME , CONVERT ( VARCHAR ( 6 ), @Date , 112 +   ' 01 ' ))  -   1 +   2 THEN   0   ELSE   1   END
ELSE   DATEPART ( DAY @Date /   7   +   1   END   AS   ' WeekOfMonth '

 

转载于:https://www.cnblogs.com/think8848/archive/2009/06/03/1495528.html

最后

以上就是坚强河马为你收集整理的[原]获取指定日期WeekOfMonth的全部内容,希望文章能够帮你解决[原]获取指定日期WeekOfMonth所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部