在计算日期时间差异时仅获取持续时间



我正在计算两次之间的差异,我得到负值,例如登录时间为"10-07-2017 09:28:00",我正在计算与"09:20:00"的差值,我得到"-3.23:52:00"...我哪里做错了??这是我的桌子...

https://drive.google.com/file/d/0B2VzHPQzJdpmaXAxWG9KZ1o2U00/view

string Logintime = e.Row.Cells[2].Text;
string Logoutime = e.Row.Cells[3].Text;
DateTime Logintimedt = Convert.ToDateTime(Logintime);
DateTime Logoutimedt = Convert.ToDateTime(Logoutime);
DateTime today = DateTime.Today.AddHours(09).AddMinutes(20).AddSeconds(00);
TimeSpan diff = (Logoutimedt - Logintimedt);
TimeSpan delay = today-Logintimedt;

如果您需要时差,请使用DateTime.TimeOfDay

TimeSpan diff = Logoutimedt.TimeOfDay - Logintimedt.TimeOfDay;
TimeSpan delay = Logintimedt.TimeOfDay - today.TimeOfDay;

https://dotnetfiddle.net/9KKBfz

试试这个

using System;
public class Program
{
public static void Main()
{
string Logintime = "07-10-2017 09:28:00";
string Logoutime = "07-10-2017 17:16:22 ";
DateTime Logintimedt = Convert.ToDateTime(Logintime);
DateTime Logoutimedt = Convert.ToDateTime(Logoutime);
DateTime today = new DateTime(Logintimedt.Year, Logintimedt.Month, Logintimedt.Day, 9, 20, 00);
TimeSpan diff = (Logoutimedt - Logintimedt);
TimeSpan delay = Logintimedt - today;
Console.WriteLine(diff);
Console.WriteLine(delay);
}
}

最新更新