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)

  • 相关阅读:
    from fake_useragent import UserAgent
    teamviewer 安装 仅学习
    利用pandas 中的read_html 获取页面表格
    第十二天 最恶心的考试题
    第十三天 生成器和生成器函数, 列表推导式
    第十一天 函数名的使用以及第一类对象, 闭包, 迭代器
    第十天 动态参数,名称空间,作用域,函数的嵌套,gloabal / nonlocal 关键字
    初始函数, 函数的定义,函数名,函数体以及函数的调用,函数的返回值,函数的参数
    第八天 文件的读,写,追加,读写,写读,seek()光标的移动,修改文件以及另一种打开文件的方式
    第七天 1.基础数据类型的补充 2.set集合 3.深浅拷贝
  • 原文地址:https://www.cnblogs.com/Shaina/p/2505592.html
Copyright © 2011-2022 走看看