zoukankan      html  css  js  c++  java
  • C#计算时间间隔的方法小结

    初始化两个时间变量用于演示实例。

    DateTime dt1 = new DateTime(2013, 10, 13, 19, 15, 50);
    DateTime dt2 = new DateTime(2013, 10, 13, 19, 18, 50);
    

    下面以计算两个时间相隔总秒数为例。

    方法一:

    TimeSpan ts1 = dt2.Subtract(dt1);
    double secInterval1 = ts1.TotalSeconds;
    

    也可以简写为:

    double secInterval1=dt2.Subtract(dt1).TotalSeconds;


    方法二:

    TimeSpan ts2 = dt2 - dt1;
    double secInterval2 = ts2.TotalSeconds;
    

    可简写为:

    double secInterval2 = (dt2-dt1).TotalSeconds;

    增加输出操作:

    Console.WriteLine("dt1={0}", dt1);
    Console.WriteLine("dt2={0}", dt2);
    Console.WriteLine("dt2.Subtract(dt1).TotalSeconds={0}", secInterval1);
    Console.WriteLine("(dt2-dt1).TotalSeconds={0}", secInterval1);
    

    得到结果:

    可见,两种方法结果一致。

    当然,还可以计算两时间相隔的天数,小时数,分钟数等等。

    下面同样给出演示代码。

    int days = ts1.Days;//获取当前 TimeSpan 结构所表示的时间间隔的天数部分。 
    int hours = ts1.Hours; //获取当前 TimeSpan 结构所表示的时间间隔的小时数部分。
    int mins = ts1.Minutes;//获取当前 TimeSpan 结构所表示的时间间隔的分钟数部分。
    int secs = ts1.Seconds;//获取当前 TimeSpan 结构所表示的时间间隔的秒数部分。
    int msecs = ts1.Milliseconds;//获取当前 TimeSpan 结构所表示的时间间隔的毫秒数部分。
    double dayInterval1 = ts1.TotalDays;//获取以整天数和天的小数部分表示的当前 TimeSpan 结构的值。         
    double hourInterval1 = ts1.TotalHours;//获取以整小时数和小时的小数部分表示的当前 TimeSpan 结构的值。
    double minInterval1=ts1.TotalMinutes;//获取以整分钟数和分钟的小数部分表示的当前 TimeSpan 结构的值。
    double secInterval1 = ts1.TotalSeconds;//获取以整秒数和秒的小数部分表示的当前 TimeSpan 结构的值。
    double msecInterval1 = ts1.TotalMilliseconds;//获取以整毫秒数和毫秒的小数部分表示的当前 TimeSpan 结构的值。
    

    重新初始化dt1 ,dt2。

    DateTime dt1 = new DateTime(2013, 10, 13, 19, 15, 50);
    DateTime dt2 = new DateTime(2013, 10, 18, 20, 18, 53);
    

    再次运行程序,得到以下结果:

    大家请注意ts1.Days与ts1.TotalDays等的区别,以免在开发中出现不必要的错误。

    扩展阅读:

    如何比较DateTime类型数据的大小

  • 相关阅读:
    GCD
    vue中前进刷新、后退缓存方案收集
    vue cli3 项目配置
    CSS 多行省略失效 (-webkit-box-orient 失效) Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.
    vue 设置当前页背景色
    vue history模式下的微信支付,及微信支付授权目录的填写,处理URL未注册
    h5 audio播放问题,audio获取缓存进度条
    h5页面ios键盘弹出收起后页面底部留白问题
    vue项目中引入vant 使用rem布局问题
    vue history模式下的微信分享
  • 原文地址:https://www.cnblogs.com/james1207/p/3367848.html
Copyright © 2011-2022 走看看