c#如何得出两个时间秒数差

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何得出两个时间秒数差相关的知识,希望对你有一定的参考价值。

C# 可以使用TimeSpan计算两个时间差,方法如下:

  可以加两个日期之间任何一个时间单位。

private string DateDiff(DateTime DateTime1, DateTime DateTime2)
 string dateDiff = null; 
  TimeSpan ts = DateTime1.Subtract(DateTime2).Duration();
 dateDiff = ts.Days.ToString()+"天"+ ts.Hours.ToString()+"小时"+ ts.Minutes.ToString()+"分钟"+ ts.Seconds.ToString()+"秒";
 return dateDiff;
 

说明:

1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻

2.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值

下面的列表涵盖了其中的一部分:

  Add:与另一个TimeSpan值相加。

  Days:返回用天数计算的TimeSpan值。

  Duration:获取TimeSpan的绝对值。

  Hours:返回用小时计算的TimeSpan值

  Milliseconds:返回用毫秒计算的TimeSpan值。

  Minutes:返回用分钟计算的TimeSpan值。

  Negate:返回当前实例的相反数。

  Seconds:返回用秒计算的TimeSpan值。

  Subtract:从中减去另一个TimeSpan值。

  Ticks:返回TimeSpan值的tick数。

  TotalDays:返回TimeSpan值表示的天数。

  TotalHours:返回TimeSpan值表示的小时数。

  TotalMilliseconds:返回TimeSpan值表示的毫秒数。

  TotalMinutes:返回TimeSpan值表示的分钟数。

  TotalSeconds:返回TimeSpan值表示的秒数。

参考技术A long time1 = Convert.ToDateTime("2014-03-22 19:28:30").Ticks;
long time2 = Convert.ToDateTime("2014-03-22 19:27:00").Ticks;
long min = (time1 - time2)/10000000;    //min=90

Java计算两个时间的天数差与月数差 LocalDateTime

 /**
  * 计算两个时间点的天数差
  * @param dt1 第一个时间点
  * @param dt2 第二个时间点
  * @return int,即要计算的天数差
  */
 public static int dateDiff(LocalDateTime dt1,LocalDateTime dt2)
  //获取第一个时间点的时间戳对应的秒数
  long t1 = dt1.toEpochSecond(ZoneOffset.ofHours(0));
  //获取第一个时间点在是1970年1月1日后的第几天
  long day1 = t1 /(60*60*24);
  //获取第二个时间点的时间戳对应的秒数
  long t2 = dt2.toEpochSecond(ZoneOffset.ofHours(0));
  //获取第二个时间点在是1970年1月1日后的第几天
  long day2 = t2/(60*60*24);
  //返回两个时间点的天数差
  return (int)(day2 - day1);
 
 @Test
 public void testDay()
  LocalDateTime of1 = LocalDateTime.of(2018, 9, 25, 1, 1);//2018-9-25 01:01
  LocalDateTime of2 = LocalDateTime.of(2019, 9, 25, 23, 16); //2019-9-25 23:16
  System.out.println(dateDiff(of1,of2));//365
 

 /**
  * 获取两个时间点的月份差
  * @param dt1 第一个时间点
  * @param dt2 第二个时间点
  * @return int,即需求的月数差
  */
 public static int monthDiff(LocalDateTime dt1,LocalDateTime dt2)
  //获取第一个时间点的月份
  int month1 = dt1.getMonthValue();
  //获取第一个时间点的年份
  int year1 = dt1.getYear();
  //获取第一个时间点的月份
  int month2 = dt2.getMonthValue();
  //获取第一个时间点的年份
  int year2 = dt2.getYear();
  //返回两个时间点的月数差
  return (year2 - year1) *12 + (month2 - month1);
 
  @Test
 public void testMonth()
  LocalDateTime of1 = LocalDateTime.of(2018, 9, 25, 1, 1);//2018-9-25 01:01
  LocalDateTime of2 = LocalDateTime.of(2019, 9, 25, 23, 16); //2019-9-25 23:16
  System.out.println(monthDiff(of1,of2));//12
 

 

以上是关于c#如何得出两个时间秒数差的主要内容,如果未能解决你的问题,请参考以下文章

C/C++输入两个任意日期求相隔天数

oracle计算时间秒数差

java 中怎么比较两个时间相差的秒数

java怎样计算两个日期之间的秒数

Java计算两个时间的天数差与月数差 LocalDateTime

delphi 计算l两个日期的时间间隔月数,月数差