获取两个系统时间,计算这两个时间之间的间隔
使用很简单,没有什么好说的,就是利用系统内置的方法求出两个时间的时间差,可以获取两个时间之间相差的秒数、分钟、小时和天数。看代码吧:
using System;
using UnityEngine;
public class TimeTest : MonoBehaviour
{
DateTime startTime;
private void Start()
{
//获取开始时的时间
startTime = DateTime.Now;
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Z))
{
//获取当前时间,并打印当前时间与开始时间相差秒数(以秒为单位)
DateTime curtimer = DateTime.Now;
int timer = GetSubSeconds(startTime, curtimer);
Debug.Log(timer);
}
}
/// <summary>
/// 获取间隔秒数
/// </summary>
/// <param name="startTimer"></param>
/// <param name="endTimer"></param>
/// <returns></returns>
public int GetSubSeconds(DateTime startTimer, DateTime endTimer)
{
TimeSpan startSpan = new TimeSpan(startTimer.Ticks);
TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);
TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();
//返回间隔秒数(不算差的分钟和小时等,仅返回秒与秒之间的差)
//return subTimer.Seconds;
//返回相差时长(算上分、时的差值,返回相差的总秒数)
return (int)subTimer.TotalSeconds;
}
/// <summary>
/// 获取两个时间的相差多少分钟
/// </summary>
/// <param name="startTimer"></param>
/// <param name="endTimer"></param>
/// <returns></returns>
public int GetSubMinutes(DateTime startTimer, DateTime endTimer)
{
TimeSpan startSpan = new TimeSpan(startTimer.Ticks);
TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);
TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();
返回相差时长(仅返回相差的分钟数)
//return subTimer.Minutes;
//返回相差时长(仅返回相差的总分钟数)
return (int)subTimer.TotalMinutes;
}
/// <summary>
/// 获取两个时间的相差多少小时
/// </summary>
/// <param name="startTimer"></param>
/// <param name="endTimer"></param>
/// <returns></returns>
public int GetSubHours(DateTime startTimer, DateTime endTimer)
{
TimeSpan startSpan = new TimeSpan(startTimer.Ticks);
TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);
TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();
//返回相差时长(仅返回相差的小时)
//return subTimer.Hours;
//返回相差时长(返回相差的总小时数)
return (int)subTimer.TotalHours;
}
/// <summary>
/// 获取两个时间的相差多少天
/// </summary>
/// <param name="startTimer"></param>
/// <param name="endTimer"></param>
/// <returns></returns>
public int GetSubDays(DateTime startTimer, DateTime endTimer)
{
TimeSpan startSpan = new TimeSpan(startTimer.Ticks);
TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);
TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();
//返回相差时长(仅返回相差的天数)
//return subTimer.Days;
//返回相差时长(返回相差的总天数)
return (int)subTimer.TotalDays;
}
}