首页 > 代码库 > 根据周几计算出月份总年中所有此日的日期值
根据周几计算出月份总年中所有此日的日期值
/// <summary> /// 根据年月获取所有周几 /// </summary> /// <param name="y">年</param> /// <param name="m">月份字符串</param> /// <param name="week">周几字符串(0:—....6:日)</param> /// <returns>时间列表</returns> public static List<string> GetAllWeek(int y, string m, string week) { List<string> dt = new List<string>(); // 用来记录每月周几存在列表 string[] monthsArr = m.Substring(0, m.Length - 1).Split(‘,‘); //获取每月 foreach (string monthStr in monthsArr) { if (!string.IsNullOrEmpty(monthStr)) { int month = Convert.ToInt32(monthStr); int Month_number = DateTime.DaysInMonth(y, month); // 用来记录一个月中的天数 for (int i = 1; i <= Month_number; i++) { string[] weektimeArr = week.Substring(0, week.Length - 1).Split(‘_‘); //获取周几与时间 foreach (string wt in weektimeArr) { string w = wt.Split(‘、‘)[0]; if (!string.IsNullOrEmpty(w)) { if (Common.Whether_Weekend(y, month, i, Convert.ToInt32(w))) { dt.Add(w + "、" + month + "-" + i + "、" + wt.Split(‘、‘)[1]); } } } } } } return dt; } /// <summary> /// 根据年某月月获取所有周几 /// </summary> /// <param name="y">年</param> /// <param name="m">月</param> /// <param name="week">周几(0:—....6:日)</param> /// <returns>时间列表</returns> public static List<DateTime> GetAllWeek(int y, int m, int week) { List<DateTime> dt = new List<DateTime>(); // 用来记录这月周几存在列表 int Month_number = DateTime.DaysInMonth(y, m); // 用来记录一个月中的天数 for (int i = 1; i <= Month_number; i++) { if (Common.Whether_Weekend(y, m, i, week)) { dt.Add(Convert.ToDateTime(m + "-" + i)); } } return dt; } /// <summary> /// 计算是周几是否存在于某月 /// </summary> /// <param name="y">年</param> /// <param name="m">月</param> /// <param name="d">天数</param> /// <param name="needdate">周几(0:—....6:日)</param> /// <returns>是否存在</returns> public static bool Whether_Weekend(int y, int m, int d, int needdate) { if (m == 1 || m == 2) { m += 12; y--; } int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7; // 基姆拉尔森公式 if (week == needdate) { return true; } else { return false; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。