获取指定月份指定周数的开始日期
private DateTime GetStartDayOfWeeks(int year, int month, int index)
{
if (year < 1600 || year > 9999)
{
return DateTime.MinValue;
}
if (month < 0 || month > 12)
{
return DateTime.MinValue;
}
if (index < 1)
{
return DateTime.MinValue;
}
DateTime startMonth = new DateTime(year, month, 1); //该月第一天
int dayOfWeek = 7;
if (Convert.ToInt32(startMonth.DayOfWeek.ToString("d")) > 0)
dayOfWeek = Convert.ToInt32(startMonth.DayOfWeek.ToString("d")); //该月第一天为星期几
DateTime startWeek = startMonth.AddDays(1 - dayOfWeek); //该月第一周开始日期
//DateTime startDayOfWeeks = startWeek.AddDays((index - 1) * 7); //index周的起始日期
DateTime startDayOfWeeks = startWeek.AddDays(index * 7); //index周的起始日期
if ((startDayOfWeeks - startMonth.AddMonths(1)).Days > 0) //startDayOfWeeks不在该月范围内
{
Response.Write("<script>alert('输入周数大于本月最大周数')</script>");
return DateTime.MinValue;
}
return startDayOfWeeks;
}
获取某日期是当月的第几周
public static int WeekOfMonth(DateTime day, int WeekStart)
{
//WeekStart
//1表示 周一至周日 为一周
//2表示 周日至周六 为一周
DateTime FirstofMonth;
FirstofMonth = Convert.ToDateTime(day.Date.Year + "-" + day.Date.Month + "-" + 1);
int i = (int)FirstofMonth.Date.DayOfWeek;
if (i == 0)
{
i = 7;
}
if (WeekStart == 1)
{
return (day.Date.Day + i - 2) / 7 + 1;
}
if (WeekStart == 2)
{
return (day.Date.Day + i - 1) / 7;
}
return 0;
//错误返回值0
}
计算周几:
C#写法:
public string GetWeek(string dateTime)
{
string[] ymd = dateTime.Split(new char[] { '/', '-' });
string timeStr = ymd[0] + "/" + ymd[1] + "/" + ymd[2] + " 10:00:00";
string week = "";
switch (Convert.ToDateTime(timeStr).DayOfWeek.ToString())
{
case "Monday":
week = "星期一";
break;
case "Tuesday":
week = "星期二";
break;
case "Wednesday":
week = "星期三";
break;
case "Thursday":
week = "星期四";
break;
case "Friday":
week = "星期五";
break;
case "Saturday":
week = "星期六";
break;
case "Sunday":
week = "星期日";
break;
}
return week;
}
Jquery写法:
$("#tb_CallTime").blur(function () {
var date = $("#tb_CallTime").val();
var day = new Date(Date.parse(date));
var today = new Array('星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六');
var week = today[day.getDay()];
$("#lb_Week").text(week);
});
获取当前月的第一天和当前月的最后一天
DateTime StartDate = DateTime.Parse(DateTime.Now.Year + "-" + DateTime.Now.Month + "-01");
DateTime EndDate= startdate.AddMonths(1).AddDays(-1);
获取当前年有多少周
public int YearWeek(int Year)
{
DateTime FirstDay = (Year + "-01-01").GetDateTime();
TimeSpan ts = FirstDay.AddYears(1) - FirstDay;
int Week = (Math.Ceiling(ts.Days / 7.0) + 1).GetInt32();
return Week;
}
获取当前时间所属季度
public string GetSeasonStr(string Month)
{
string Season = string.Empty;
switch (Month)
{
case "1":
case "2":
case "3":
Season = "第一季度";
break;
case "4":
case "5":
case "6":
Season = "第二季度";
break;
case "7":
case "8":
case "9":
Season = "第三季度";
break;
case "10":
case "11":
case "12":
Season = "第四季度";
break;
}
return Season;
}
public string GetGetSeason()
{
String Month=DateTime.Now.Month.Tostring();
return GetSeasonStr(Month);
}
获取当前时间是本年的第几周
public int GetYearWeekByNow(DateTime dt)
{
int FirstWeek = (dt.Year + "-01-01").GetDateTime().DayOfYear;
int CurrDay = dt.Date.DayOfYear;
int Week = (Math.Ceiling((CurrDay - FirstWeek) / 7.0) + 1).GetInt32();
return Week;
}