• 计算当前月底天数


    /// <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之家
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    node.js学习二---------------------同步API和异步API的区别
    node.js学习一---------------------模块的导入
    ES6函数的特性(箭头语法)
    10分钟了解Android的Handler机制
    10分钟了解Android的事件分发
    SwipeRefreshLayout,用最少的代码定制最美的上下拉刷新样式
    手把手教你React Native 实战之开山篇《一》
    Android 组件化方案探索与思考
    2018谷歌I/O开发者大会8大看点汇总 新品有哪些
    Glide高级详解—缓存与解码复用
  • 原文地址:https://www.cnblogs.com/wpf123/p/2347421.html
Copyright © 2020-2023  润新知