• C#关于TimeSpan结构的使用和获取两个时间差


    C#中的TimeSpan结构可以获取两个时间的时间差。

    它主要具有以下属性和方法:

    属性:

    • Days:获取时间间隔的天数部分。
    • Hours:获取时间间隔的小时数部分(不包括整天的小时数)。
    • Minutes:获取时间间隔的分钟数部分(不包括整小时的分钟数)。
    • Seconds:获取时间间隔的秒数部分(不包括整分钟的秒数)。
    • Milliseconds:获取时间间隔的毫秒数部分(不包括整秒的毫秒数)。
    • Ticks:获取时间间隔的刻度数,每刻度等于一百纳秒。
    • TotalDays:获取时间间隔的总天数,包括天数、小时、分钟、秒和毫秒。
    • TotalHours:获取时间间隔的总小时数,包括小时、分钟、秒和毫秒。
    • TotalMinutes:获取时间间隔的总分钟数,包括分钟、秒和毫秒。
    • TotalSeconds:获取时间间隔的总秒数,包括秒和毫秒。

    方法:

    • Add(TimeSpan):将指定的时间间隔添加到当前时间间隔。
    • Subtract(TimeSpan):从当前时间间隔减去指定的时间间隔。
    • Duration():获取时间间隔的绝对值。
    • Negate():将时间间隔的值更改为相反数。
    • ToString():将时间间隔转换为字符串表示形式。

    例:

    1. TimeSpan timeSpan = new TimeSpan(1, 2, 30, 45, 500); // 1天、2小时、30分钟、45秒、500毫秒
    2. Console.WriteLine("Days: " + timeSpan.Days); // 输出:1
    3. Console.WriteLine("Hours: " + timeSpan.Hours); // 输出:2
    4. Console.WriteLine("Minutes: " + timeSpan.Minutes); // 输出:30
    5. Console.WriteLine("Seconds: " + timeSpan.Seconds); // 输出:45
    6. Console.WriteLine("Milliseconds: " + timeSpan.Milliseconds); // 输出:500
    7. Console.WriteLine("Ticks: " + timeSpan.Ticks); // 输出:978455000000
    8. Console.WriteLine("TotalDays: " + timeSpan.TotalDays); // 输出:1.10434027777778
    9. Console.WriteLine("TotalHours: " + timeSpan.TotalHours); // 输出:26.5041666666667
    10. Console.WriteLine("TotalMinutes: " + timeSpan.TotalMinutes); // 输出:1590.25
    11. Console.WriteLine("TotalSeconds: " + timeSpan.TotalSeconds); // 输出:95415.5
    12. TimeSpan negatedTimeSpan = timeSpan.Negate();
    13. Console.WriteLine("Negated TimeSpan: " + negatedTimeSpan); // 输出:-1.02:29:14.5000000
    14. TimeSpan absoluteTimeSpan = timeSpan.Duration();
    15. Console.WriteLine("Absolute TimeSpan: " + absoluteTimeSpan); // 输出:1.02:30:45.5000000
    16. TimeSpan addedTimeSpan = timeSpan.Add(new TimeSpan(0, 1, 15, 0, 0));
    17. Console.WriteLine("Added TimeSpan: " + addedTimeSpan); // 输出:1.03:45:45.5000000
    18. TimeSpan subtractedTimeSpan = timeSpan.Subtract(new TimeSpan(0, 0, 30, 15, 0));
    19. Console.WriteLine("Subtracted TimeSpan: " + subtractedTimeSpan); // 输出:1.02:00:30.5000000
    20. string timeSpanString = timeSpan.ToString();
    21. Console.WriteLine("TimeSpan as string: " + timeSpanString); // 输出:1.02:30:45.5000000

    特别要理解Days、Hours、Minutes和Seconds和TotalHours、TotalMinutes和TotalSeconds等之间的差别。前者仅表示时间间隔的部分值(不包括更大的单位),而后者表示时间间隔的总值(包括更大的单位)。具体可以仔细看上面的例子加以分析。

    假如我们要计算两个时间点的时间差,可以参考如下例子:

    1. DateTime startTime = new DateTime(2023, 1, 1, 12, 0, 0); // 开始时间
    2. DateTime endTime = new DateTime(2023, 1, 2, 14, 30, 0); // 结束时间
    3. TimeSpan timeDifference = endTime - startTime;
    4. int days = timeDifference.Days; // 相差的天数
    5. int hours = timeDifference.Hours; // 相差的小时数
    6. int minutes = timeDifference.Minutes; // 相差的分钟数
    7. int seconds = timeDifference.Seconds; // 相差的秒数
    8. Console.WriteLine("相差的天数: " + days);
    9. Console.WriteLine("相差的小时数: " + hours);
    10. Console.WriteLine("相差的分钟数: " + minutes);
    11. Console.WriteLine("相差的秒数: " + seconds);

  • 相关阅读:
    spring boot 实现mock平台
    安卓Android 架构模式及UI布局设计
    wind量化交易接口编程代码分享
    STM32_SPI
    elasticsearch 简单使用【php版本】
    python闭包与装饰器
    Flask 进行 Web 开发时,常见的错误
    2、Ubuntu下安装Vivado下的下载器驱动 Digilent 版本
    36寸旅行小吉他怎么选?适合成人儿童初学入门的几款高性价比民谣小吉他品牌推荐!
    Web基础与HTTP协议
  • 原文地址:https://blog.csdn.net/mr_five55/article/details/134519660