asp.net 计算时间日期间隔实现代码

作者:袖梨 2022-06-25

先来看个最简单的计算时间差的.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

调用 方法很简单以函数形式就行了。

相关文章

精彩推荐