C#一些时间处理方法

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值