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 == 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/yuanermen/archive/2008/07/14/1242853.html)

  • 相关阅读:
    121. Best Time to Buy and Sell Stock
    70. Climbing Stairs
    647. Palindromic Substrings
    609. Find Duplicate File in System
    583. Delete Operation for Two Strings
    556 Next Greater Element III
    553. Optimal Division
    539. Minimum Time Difference
    537. Complex Number Multiplication
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/Shaina/p/2505592.html
Copyright © 2011-2022 走看看