1、字符串日期转DateTime型
2、获取本年的第几周
3、获取指定周的日期范围(开始时间:周一;结束时间:周日)
4、获取今天是星期几
1、字符串日期转DateTime型
/// <summary>
/// 字符串日期转DateTime
/// </summary>
public static DateTime TransStrToDateTime(string strDateTime)
{
DateTime now;
string[] format = new string[]
{
"yyyyMMddHHmmss", "yyyy-MM-dd HH:mm:ss", "yyyy年MM月dd日 HH时mm分ss秒",
"yyyyMdHHmmss","yyyy年M月d日 H时mm分ss秒", "yyyy.M.d H:mm:ss", "yyyy.MM.dd HH:mm:ss","yyyy-MM-dd","yyyyMMdd"
,"yyyy/MM/dd","yyyy/M/d"
};
if (DateTime.TryParseExact(strDateTime, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out now))
{
return now;
}
return DateTime.MinValue;
}
/// <summary>
/// 字符串日期转DateTime?
/// </summary>
public static DateTime? TransStrToDateTimeNull(string strDateTime)
{
DateTime? result = null;
if (String.IsNullOrEmpty(strDateTime))
{
return null;
}
string[] format = new string[]
{
"yyyyMMddHHmmss", "yyyy-MM-dd HH:mm:ss", "yyyy年MM月dd日 HH时mm分ss秒",
"yyyyMdHHmmss","yyyy年M月d日 H时mm分ss秒", "yyyy.M.d H:mm:ss", "yyyy.MM.dd HH:mm:ss","yyyy-MM-dd","yyyy-MM","yyyyMMdd"
,"yyyy/MM/dd","yyyy/M/d","yyyy-MM-ddTHH:mm:ss","M/d/yyyy","MM/dd/yyyy"
};
DateTime now;
if (DateTime.TryParseExact(strDateTime, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out now))
{
result = now;
}
return result;
}
2、获取本年的第几周
3、获取指定周的日期范围(开始时间:周一;结束时间:周日)
/// <summary>
/// 获取本年的第几周
/// </summary>
public static int GetWeekOfYear(DateTime dateTime)
{
GregorianCalendar gc = new GregorianCalendar();
int weekOfYear = gc.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
return weekOfYear;
}
/// <summary>
/// 获取指定周的日期范围(开始时间:周一;结束时间:周日)
/// </summary>
/// <returns>数组0:开始时间;数组1:结束时间</returns>
public static DateTime[] CalcWeekDay(DateTime dateTime)
{
DateTime[] result = new DateTime[2];
int year = dateTime.Year;
int week = GetWeekOfYear(dateTime);
DateTime first = DateTime.MinValue;
DateTime last = DateTime.MinValue;
//指定年范围
DateTime start = new DateTime(year, 1, 1);
int startWeekDay = (int)start.DayOfWeek;
//周的起始日期
first = start.AddDays((8 - startWeekDay) + (week - 2) * 7);
last = first.AddDays(6).AddHours(23).AddMinutes(59).AddSeconds(59);
result[0] = first;
result[1] = last;
return result;
}
4、获取今天是星期几
/// <summary>
/// 获取今天是星期几
/// </summary>
public static int GetWeek()
{
int[] Day = new int[] { 7, 1, 2, 3, 4, 5, 6 };
int week = Day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))];
return week;
}