• 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)

  • 相关阅读:
    iOS 动画总结UIView动画
    iPhone 本地通知
    NSNotification学习笔记
    [重构]把程序写得更简洁,更好维护
    使用asp:Timer控件为站点创建一个实时时钟
    为用户控件(UserControl)写属性
    Gridview前面10行数据显示背景色
    MS SQL获取最大值或最小值日期的函数
    How to modify Inventory Aging Report form days field default value
    DropDownlist的DataTextField显示多列数据
  • 原文地址:https://www.cnblogs.com/Shaina/p/2505592.html
Copyright © 2020-2023  润新知