zoukankan      html  css  js  c++  java
  • asp.net中C#中计算时间差代码

    我用的最简单的办法是

    代码如下 复制代码
    DateTime dtone = Convert.ToDateTime("2007-1-1 05:32:22");
    DateTime dtwo = Convert.ToDateTime("2007-1-1 04:20:15");
    TimeSpan span = dtone.Subtract(dtwo);
    Response.Write(span.Days + "天" + span.Hours + "小时" + span.Minutes + "分钟" + span.Seconds+"秒");

    上面是给定两个时间,计算时间差,输出类似于“相差10天5小时10分28秒”的格式了,但是如果我想算出两个页面执行时差呢。

    实例1

    代码如下 复制代码
    /// <summary>
    /// 程序执行时间测试
    /// </summary>
    /// <param name="dateBegin">开始时间</param>
    /// <param name="dateEnd">结束时间</param>
    /// <returns>返回(秒)单位,比如: 0.00239秒</returns>
    public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd)
    {
    TimeSpan ts1 = new TimeSpan(dateBegin.Ticks);
    TimeSpan ts2 = new TimeSpan(dateEnd.Ticks);
    TimeSpan ts3 = ts1.Subtract(ts2).Duration();
    //你想转的格式
    return
    ts3.TotalMilliseconds.ToString();
    }

    这是最基本的,得到的是毫秒数

    如果你是只单纯的需要你的那种格式完全可以直接取前10位就行了

    代码如下 复制代码
    1.ts3.ToString("g") 0:00:07.171
    2.ts3.ToString("c") 00:00:07.1710000
    3.ts3.ToString("G") 0:00:00:07.1710000

    有三种格式可以选择,我建议如果需要其实一种的时候可以使用截取的试比较快捷
    比如

    代码如下 复制代码
    ts3.ToString("g").Substring(0,8) 0:00:07.1
    ts3.ToString("c").Substring(0,8) 00:00:07
    ts3.ToString("G").Substring(0,8) 0:00:00

    --------------------------------------------------------------------------------

    C#中使用TimeSpan计算两个时间(www.111cn.net)的差值

    代码如下 复制代码
    可以反加两个日期之间任何一个时间单位。
    private string DateDiff(DateTime DateTime1, DateTime DateTime2)
    {string dateDiff = null;
    TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
    TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
    TimeSpan ts = ts1.Subtract(ts2).Duration();
    dateDiff = ts.Days.ToString()+"天"+ ts.Hours.ToString()+"小时"+ ts.Minutes.ToString()+"分钟"+ ts.Seconds.ToString()+"秒";
    return dateDiff;
    }


    TimeSpan ts = Date1 - Date2;
    double dDays = ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5
    int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1

    最近发表时间的函数

    代码如下 复制代码
    public string DateStringFromNow(DateTime dt)
    {
    TimeSpan span = DateTime.Now - dt;
    if (span.TotalDays > 60)
    {
    return dt.ToShortDateString();
    }
    else if ( span.TotalDays > 30 )
    {
    return "1个月前";
    }
    else if (span.TotalDays > 14)
    {
    return "2周前";
    }
    else if (span.TotalDays > 7)
    {
    return "1周前";
    }
    else if (span.TotalDays > 1)
    {
    return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));
    }
    else if (span.TotalHours > 1)
    {
    return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));
    }
    else if (span.TotalMinutes > 1)
    {
    return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));
    }
    else if (span.TotalSeconds >= 1)
    {
    return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));
    }
    else
    {
    return "1秒前";
    }
    }

    from:http://www.111cn.net/net/160/45591.htm

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 ALGO-16进制转换
    Java实现 蓝桥杯VIP 算法训练 ALGO-16进制转换
    Java实现 蓝桥杯VIP 算法训练 ALGO-85进制转换
    Java实现 蓝桥杯VIP 算法训练 ALGO-85进制转换
    Java实现 蓝桥杯VIP 算法训练 ALGO-85进制转换
    Java实现 蓝桥杯VIP 算法训练 ALGO-85进制转换
    QEvent大全,有中文解释
    涨姿势:创业做一个App需要花多少钱(8个人,6个月,就要100万,附笔记心得)
    360私有化通过发改委审批:这6家公司可能性最大
    给360的六条建议(禁止异地登录,普通用户500G足够用了)
  • 原文地址:https://www.cnblogs.com/alibai/p/4049395.html
Copyright © 2011-2022 走看看