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

  • 相关阅读:
    skynet源码分析之socketchannel
    skynet源码分析之master/salve集群模式
    skynet源码分析之网络层——网关服务器
    Android反编译基础(apktoos)--广工图书馆APK
    Android-Native-Server 启动和注册详细分析
    Android NDK r8 windows环境搭建
    Android 4.1.1源码编译
    Android Binder------ServiceManager启动分析
    更改系统盘符后DFS无法复制故障处理
    Centos6.9部署Gitlab-11.9.8并汉化
  • 原文地址:https://www.cnblogs.com/Tirisfal/p/4630141.html
Copyright © 2020-2023  润新知