C#计算指定时间跨度之前的时间
C# Calculate how long it will be until specified timespan
所以我正在尝试计算到特定时间还有多长时间。但我似乎无法让它工作。
一个例子是说我正在尝试计算从现在到 06:00:00am 需要多长时间 所以说它是 10:30pm 我想看看到第二天早上 6 点还有多长时间.所以正确答案是 7 小时 30 分钟。或者另一个例子说它是 8:30pm 我想看看到晚上 10 点还有多长时间。如果有人可以向我提供一些代码来帮助我,将不胜感激!
试试这个
DateTime later = DateTime.Now.AddHours(3);
DateTime now = DateTime.Now;
Console.WriteLine(later.Subtract(now).TotalSeconds);
先比较时间跨度,然后根据需要添加一天。
static TimeSpan TimeDiff(TimeSpan nowSpan, TimeSpan ts)
{
if (nowSpan > ts)
{
ts = ts.Add(TimeSpan.FromDays(1));
}
return ts - nowSpan;
}
static void Main(string[] args)
{
Console.WriteLine(TimeDiff(new TimeSpan(22, 30, 0), new TimeSpan(6, 0, 0)));
// 07:30:00
Console.WriteLine(TimeDiff(new TimeSpan(20, 30, 0), new TimeSpan(22, 0, 0)));
// 01:30:00
// You may want use DateTime.Now.TimeOfDay as the first parameter
Console.ReadKey();
}
所以我正在尝试计算到特定时间还有多长时间。但我似乎无法让它工作。
一个例子是说我正在尝试计算从现在到 06:00:00am 需要多长时间 所以说它是 10:30pm 我想看看到第二天早上 6 点还有多长时间.所以正确答案是 7 小时 30 分钟。或者另一个例子说它是 8:30pm 我想看看到晚上 10 点还有多长时间。如果有人可以向我提供一些代码来帮助我,将不胜感激!
试试这个
DateTime later = DateTime.Now.AddHours(3);
DateTime now = DateTime.Now;
Console.WriteLine(later.Subtract(now).TotalSeconds);
先比较时间跨度,然后根据需要添加一天。
static TimeSpan TimeDiff(TimeSpan nowSpan, TimeSpan ts)
{
if (nowSpan > ts)
{
ts = ts.Add(TimeSpan.FromDays(1));
}
return ts - nowSpan;
}
static void Main(string[] args)
{
Console.WriteLine(TimeDiff(new TimeSpan(22, 30, 0), new TimeSpan(6, 0, 0)));
// 07:30:00
Console.WriteLine(TimeDiff(new TimeSpan(20, 30, 0), new TimeSpan(22, 0, 0)));
// 01:30:00
// You may want use DateTime.Now.TimeOfDay as the first parameter
Console.ReadKey();
}