900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C#关于日期 月 天数 和一年有多少周及根据某年某周获取时间段的计算(转)

C#关于日期 月 天数 和一年有多少周及根据某年某周获取时间段的计算(转)

时间:2024-01-01 00:04:55

相关推荐

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;}}

(注:转自/yuanermen/archive//07/14/1242853.html)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。