zoukankan      html  css  js  c++  java
  • 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;
                }

            }

     

    作者:wpf之家
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    c++调用win32API控制打印机打印
    php socket 通信
    [SDOI2015][BZOJ3991] 寻宝游戏|set|dfs序|虚树|树上倍增LCA
    [NOI2015][BZOJ4195] 程序自动分析|并查集|离散化
    [NOI2015][BZOJ4196] 软件包管理器|树链剖分
    [HEOI2014][BZOJ3611] 大工程|虚树|树型dp|dfs序|树上倍增LCA
    [Usaco2007 Mar][BZOJ1638] Cow Traffic 奶牛交通|动态规划
    [HDU2222]Keywords Search|AC自动机
    [POI2007][BZOJ1103] 大都市meg|dfs序|树状数组
    [Usaco2007 Dec][BZOJ1690] 奶牛的旅行|分数规划|二分|SPFA
  • 原文地址:https://www.cnblogs.com/wpf123/p/2347420.html
Copyright © 2011-2022 走看看