zoukankan      html  css  js  c++  java
  • C#关于日期 月 天数 和一年有多少周及根据某年某周获取时间段的计算

    /// 当前月有多少天
             /// </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, 1, 1);
                dt = dt + new TimeSpan((nNumWeek - 1) * 7, 0, 0, 0);
                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 == 0)
                {
                    int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
                    int countWeek = countDay / 7 + 2;
                    return countWeek;
                }
                else
                {
                    int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
                    int countWeek = countDay / 7 + 1;
                    return countWeek;
                }
            }
            /// <summary>
            /// 求当前日期是一年的中第几周
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static int WeekOfYear(DateTime curDay)
            {
                curDay = curDay.AddDays(-1);
                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;
                }
            }
  • 相关阅读:
    ubuntu 可以用 root 登录 ftp
    正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度
    HttpUtility.UrlEncode,Server.UrlEncode 的区别
    HttpUtility.UrlEncode 方法 (String) 对 URL 字符串进行编码 NET Framework 4.6 and 4.5
    C# 多线程task
    NET Framework 4.5 有更加简便的方法 Task.Run()
    Tuple<int, int> Dictionary<string, object>妙用
    sha1加密
    MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数
    3、Task.Factory属性
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12349068.html
Copyright © 2011-2022 走看看