.NET(C#)版DateAdd和DateDiff函数

/// <summary>
/// 通过向指定日期添加间隔,返回新的 DateTime 值
/// </summary>
/// <param name="datepart"></param>
/// <param name="number"></param>
/// <param name="date"></param>
/// <returns></returns>
public DateTime DateAdd(string datepart, double number, DateTime date)
{
    switch (datepart)
    {
        case "yy":
            return date.AddYears((int)number);
        case "mm":
            return date.AddMonths((int)number);
        case "dd":
            return date.AddDays(number);
        case "hh":
            return date.AddHours(number);
        case "mi":
            return date.AddMinutes(number);
        case "ss":
            return date.AddSeconds(number);
        default:
            return date;
    }
}

/// <summary>
/// 返回跨越两个指定日期的日期和时间边界的数目,目前只支持日、小时、分钟和秒。
/// </summary>
/// <param name="datepart"></param>
/// <param name="startdate"></param>
/// <param name="enddate"></param>
/// <returns></returns>
public double DateDiff(string datepart, DateTime startdate, DateTime enddate)
{
    TimeSpan ts = enddate - startdate;
    switch (datepart)
    {
        //TimeSpan没有TotalYears和TotalMonths属性:(
        case "dd":
            return ts.TotalDays;
        case "hh":
            return ts.TotalHours;
        case "mi":
            return ts.TotalMinutes;
        case "ss":
            return ts.TotalSeconds;
        default:
            return 0d;
    }
}


评论: 0 | 引用: 0 | 查看次数: 7362
发表评论
登录后再发表评论!