【www.bbyears.com--时间日期】
先来看个最简单的计算时间差的.net代码
代码如下DateTime dt1 = new DateTime(2005,5,6,15,36,05);
DateTime dt2 = new DateTime(2005,6,13,11,32,05);
System.TimeSpan st = dt2.sSubtract(dt1);
this.TextBox1.Text = st.Days.ToString()+"天"
+st.Hours.ToString()+"小时"
+st.Minutes.ToString()+"分钟"
+st.Seconds.ToString()+"秒";
实例,可以实现日期时间的天数,秒数等操作,像BBS几天前发的内容这种
函数:
代码如下 ////// 返回两个日期之间的时间间隔(y:年份间隔、M:月份间隔、d:天数间隔、h:小时间隔、m:分钟间隔、s:秒钟间隔)
///
/// 开始日期
/// 结束日期
/// 间隔标志
///
private int DateDiff(System.DateTime Date1,System.DateTime Date2,string Interval)
{
double dblYearLen=365;//年的长度,365天
double dblMonthLen=(365/12);//每个月平均的天数
System.TimeSpan objT;
objT=Date2.Subtract(Date1);
switch(Interval)
{
case "y "://返回日期的年份间隔
return System.Convert.ToInt32(objT.Days/dblYearLen);
case "M "://返回日期的月份间隔
return System.Convert.ToInt32(objT.Days/dblMonthLen);
case "d "://返回日期的天数间隔
return objT.Days;
case "h "://返回日期的小时间隔
return System.Convert.ToInt32(objT.TotalHours);
case "m "://返回日期的分钟间隔
return System.Convert.ToInt32(objT.TotalMinutes);
case "s "://返回日期的秒钟间隔
return System.Convert.ToInt32(objT.TotalSeconds);
default:
break;
}
return 0;
}
使用方法:
代码如下private void Form1_Load(object sender, System.EventArgs e)
{
System.DateTime dt1,dt2;
dt1=new DateTime(2005,5,1);
dt2=new DateTime(2005,6,30);
System.Console.WriteLine(this.DateDiff(dt1,dt2, "Y "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "M "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "d "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "h "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "m "));
System.Console.WriteLine(this.DateDiff(dt1,dt2, "s "));
}
实例
代码如下DateTime dt1,dt2;//如果不是时间类型的话,转换成时间类型
TimeSpan d=dt1.Subtract(dt2);
d.Days=...//这是天数
d.Minutes=...//这是分钟
public enum DateInterval
{
Second, Minute, Hour, Day, Week, Month, Quarter, Year
}
public sealed class DateTimeManger
{
private DateTimeManger()
{}//end of default constructor
public static long DateDiff(DateInterval Interval, System.DateTime StartDate, System.DateTime EndDate )
{
long lngDateDiffValue = 0;
System.TimeSpan TS = new System.TimeSpan(EndDate.Ticks - StartDate.Ticks);
switch (Interval)
{
case DateInterval.Second:
lngDateDiffValue = (long) TS.TotalSeconds;
break;
case DateInterval.Minute:
lngDateDiffValue = (long) TS.TotalMinutes;
break;
case DateInterval.Hour:
lngDateDiffValue = (long)TS.TotalHours;
break;
case DateInterval.Day:
lngDateDiffValue = (long) TS.Days;
break;
case DateInterval.Week:
lngDateDiffValue = (long)( TS.Days / 7);
break;
case DateInterval.Month:
lngDateDiffValue = (long)( TS.Days / 30);
break;
case DateInterval.Quarter:
lngDateDiffValue = (long)( (TS.Days / 30) / 3 );
break;
case DateInterval.Year:
lngDateDiffValue = (long)( TS.Days / 365);
break;
}
return (lngDateDiffValue);
}//end of DateDiff
}//end of class
调用 方法很简单以函数形式就行了。