• C#关于日期月天数和一年有多少周及某年某周时间段的计算


    /// <summary>
            
    /// 当前月有多少天
            
    /// </summary>
            
    /// <param name="y"></param>
            
    /// <param name="m"></param>
            
    /// <returns></returns>

            public static int HowMonthDay(int y, int m)
            
    {
                
    int mnext;
                
    int ynext;
                
    if (m < 12)
                
    {
                    mnext 
    = m + 1;
                    ynext 
    = y;
                }

                
    else
                
    {
                    mnext 
    = 1;
                    ynext 
    = y + 1;
                }

                DateTime dt1 
    = System.Convert.ToDateTime(y + "-" + m + "-1");
                DateTime dt2 
    = System.Convert.ToDateTime(ynext + "-" + mnext + "-1");
                TimeSpan diff 
    = dt2 - dt1;
                
    return diff.Days;
            }


            
    /// <summary>
            
    /// 得到一年中的某周的起始日和截止日
            
    /// 年 nYear
            
    /// 周数 nNumWeek
            
    /// 周始 out dtWeekStart
            
    /// 周终 out dtWeekeEnd
            
    /// </summary>
            
    /// <param name="nYear"></param>
            
    /// <param name="nNumWeek"></param>
            
    /// <param name="dtWeekStart"></param>
            
    /// <param name="dtWeekeEnd"></param>

            public static void GetWeek(int nYear, int nNumWeek, out   DateTime dtWeekStart, out   DateTime dtWeekeEnd)
            
    {
                DateTime dt 
    = new DateTime(nYear, 11);
                dt 
    = dt + new TimeSpan((nNumWeek - 1* 7000);
                dtWeekStart 
    = dt.AddDays(-(int)dt.DayOfWeek + (int)DayOfWeek.Monday);
                dtWeekeEnd 
    = dt.AddDays((int)DayOfWeek.Saturday - (int)dt.DayOfWeek + 1);
            }


            
    /// <summary>
            
    /// 求某年有多少周
            
    /// 返回 int
            
    /// </summary>
            
    /// <param name="strYear"></param>
            
    /// <returns>int</returns>

            public static int GetYearWeekCount(int strYear)
            
    {
                
    string returnStr = "";

                System.DateTime fDt 
    = DateTime.Parse(strYear.ToString() + "-01-01");
                
    int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几 
                if (k == 1)
                
    {
                    
    int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
                    
    int countWeek = countDay / 7 + 1;
                    
    return countWeek;

                }

                
    else
                
    {
                    
    int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
                    
    int countWeek = countDay / 7 + 2;
                    
    return countWeek;
                }


            }


            
    /// <summary>
            
    /// 求当前日期是一年的中第几周
            
    /// </summary>
            
    /// <param name="date"></param>
            
    /// <returns></returns>

            public static int WeekOfYear(DateTime curDay)
            
    {
                
    int firstdayofweek = Convert.ToInt32(Convert.ToDateTime(curDay.Year.ToString() + "" + "1-1 ").DayOfWeek);

                
    int days = curDay.DayOfYear;
                
    int daysOutOneWeek = days - (7 - firstdayofweek);

                
    if (daysOutOneWeek <= 0)
                
    {
                    
    return 1;
                }

                
    else
                
    {
                    
    int weeks = daysOutOneWeek / 7;
                    
    if (daysOutOneWeek % 7 != 0)
                        weeks
    ++;

                    
    return weeks + 1;
                }

            }

     

    作者:观海看云个人开发历程知识库 - 博客园
    出处:http://www.cnblogs.com/zhangtao/
    文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    SQL Activity Monitor
    Oracle学习计划
    SQL Server 2008 R2下载地址
    聚集索引与非聚集索引的区别
    Android图片加载后变小
    工作手记之Cransoft(四)
    触发器
    Oracle数据库体系架构概要
    html5
    基础概念
  • 原文地址:https://www.cnblogs.com/zhangtao/p/1601462.html
Copyright © 2020-2023  润新知