手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#日期间隔计算示例
c#日期间隔计算示例
摘要:复制代码代码如下://////计算日期的间隔(静态类)///publicstaticclassdateTimeDiff{#region计算日...

复制代码 代码如下:

/// <summary>

/// 计算日期的间隔(静态类)

/// </summary>

public static class dateTimeDiff

{

#region 计算日期间隔

/// <summary>

/// 计算日期间隔

/// </summary>

/// <param name="d1">要参与计算的其中一个日期字符串</param>

/// <param name="d2">要参与计算的另一个日期字符串</param>

/// <returns>一个表示日期间隔的TimeSpan类型</returns>

public static TimeSpan toResult(string d1, string d2)

{

try

{

DateTime date1 = DateTime.Parse(d1);

DateTime date2 = DateTime.Parse(d2);

return toResult(date1, date2);

}

catch

{

throw new Exception("字符串参数不正确!");

}

}

#endregion

#region 计算日期间隔

/// <summary>

/// 计算日期间隔

/// </summary>

/// <param name="d1">要参与计算的其中一个日期</param>

/// <param name="d2">要参与计算的另一个日期</param>

/// <returns>一个表示日期间隔的TimeSpan类型</returns>

public static TimeSpan toResult(DateTime d1, DateTime d2)

{

TimeSpan ts;

if (d1 > d2)

{

ts = d1 - d2;

}

else

{

ts = d2 - d1;

}

return ts;

}

#endregion

#region 计算日期间隔

/// <summary>

/// 计算日期间隔

/// </summary>

/// <param name="d1">要参与计算的其中一个日期字符串</param>

/// <param name="d2">要参与计算的另一个日期字符串</param>

/// <param name="drf">决定返回值形式的枚举</param>

/// <returns>一个代表年月日的int数组,具体数组长度与枚举参数drf有关</returns>

public static int[] toResult(string d1, string d2, diffResultFormat drf)

{

try

{

DateTime date1 = DateTime.Parse(d1);

DateTime date2 = DateTime.Parse(d2);

return toResult(date1, date2, drf);

}

catch

{

throw new Exception("字符串参数不正确!");

}

}

#endregion

#region 计算日期间隔

/// <summary>

/// 计算日期间隔

/// </summary>

/// <param name="d1">要参与计算的其中一个日期</param>

/// <param name="d2">要参与计算的另一个日期</param>

/// <param name="drf">决定返回值形式的枚举</param>

/// <returns>一个代表年月日的int数组,具体数组长度与枚举参数drf有关</returns>

public static int[] toResult(DateTime d1, DateTime d2, diffResultFormat drf)

{

#region 数据初始化

DateTime max;

DateTime min;

int year;

int month;

int tempYear, tempMonth;

if (d1 > d2)

{

max = d1;

min = d2;

}

else

{

max = d2;

min = d1;

}

tempYear = max.Year;

tempMonth = max.Month;

if (max.Month < min.Month)

{

tempYear--;

tempMonth = tempMonth + 12;

}

year = tempYear - min.Year;

month = tempMonth - min.Month;

#endregion

#region 按条件计算

if (drf == diffResultFormat.dd)

{

TimeSpan ts = max - min;

return new int[] { ts.Days };

}

if (drf == diffResultFormat.mm)

{

return new int[] { month + year * 12 };

}

if (drf == diffResultFormat.yy)

{

return new int[] { year };

}

return new int[] { year, month };

#endregion

}

#endregion

}

#region 关于返回值形式的枚举

/// <summary>

/// 关于返回值形式的枚举

/// </summary>

public enum diffResultFormat

{

/// <summary>

/// 年数和月数

/// </summary>

yymm,

/// <summary>

/// 年数

/// </summary>

yy,

/// <summary>

/// 月数

/// </summary>

mm,

/// <summary>

/// 天数

/// </summary>

dd,

}

#endregion

复制代码 代码如下:

DateTime sDate = Convert.ToDateTime("2014-1-16");

DateTime eDate = Convert.ToDateTime("2014-2-16");

int month = dateTimeDiff.toResult(sDate, eDate, diffResultFormat.mm)[0];

【c#日期间隔计算示例】相关文章:

C# 拓展方法的简单实例

c# 控件截图的简单实例

c# 生成随机时间的小例子

C#日期格式化的几个要点小结

C#日期转换函数分享

c# 删除所有的空文件夹的小例子

C#根据年月日计算星期几的函数小例子

c# 二分查找算法

C#重启远程计算机的代码

c#图片添加水印的实例代码

精品推荐
分类导航