C# 查找表中日期和午夜之间的差异(ASP.NET MVC)
我有一张数据表 这是模型C# 查找表中日期和午夜之间的差异(ASP.NET MVC),c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一张数据表 这是模型 public partial class Logging { public string Imei { get; set; } public Nullable<System.DateTime> CurDateTime { get; set; } public Nullable<System.DateTime> GPSDateTime2 { get; set; } public Nullable<decimal
public partial class Logging
{
public string Imei { get; set; }
public Nullable<System.DateTime> CurDateTime { get; set; }
public Nullable<System.DateTime> GPSDateTime2 { get; set; }
public Nullable<decimal> Latitude2 { get; set; }
public Nullable<decimal> Longitude2 { get; set; }
public string Speed { get; set; }
public Nullable<int> Datatype { get; set; }
public int Id { get; set; }
[NotMapped]
public TimeSpan? FirstStartDifference { get { return CurDateTime - DateTime.Today; } }
[NotMapped]
public int coeff = 2;
}
如何正确计算差值使用
TimeSpan duration = DateTime.Parse(endTime).Subtract(DateTime.Parse(startTime));
你可以通过使用
TimeSpan duration = DateTime.Parse(endTime).Subtract(DateTime.Parse(startTime));
您可以使用Hour、Minute和Second属性,并根据这些值构造新的DateTime,这将是您所需的差异。或者,您可以创建一个0小时、0分钟和0秒的新日期时间,并进行减法运算
您可以获取属性Hour、Minute和Second,并根据这些值构造新的日期时间,这将是您需要的差异。或者,您可以创建一个0小时、0分钟和0秒的新日期时间,并进行减法运算
您可以按照自己的意愿或其他答案所述进行计算,但在计算结果时使用
.Duration()
。
该方法将返回绝对结果,而不是负结果
四行代码:
public TimeSpan? FirstStartDifference
{
get
{
if (!CurDateTime.HasValue)
{
return null
}
return (CurDateTime - DateTime.Today).Duration();
}
}
如果只想从DateTime
对象中获取日期值,只需使用date
属性,而不是创建一个新属性
e、 g
您可以根据自己的需要或其他答案进行计算,但在计算结果时使用
.Duration()
。
该方法将返回绝对结果,而不是负结果
四行代码:
public TimeSpan? FirstStartDifference
{
get
{
if (!CurDateTime.HasValue)
{
return null
}
return (CurDateTime - DateTime.Today).Duration();
}
}
如果只想从DateTime
对象中获取日期值,只需使用date
属性,而不是创建一个新属性
e、 g
因此,您将从DateTime中减去CurDateTime,即2017年10月18日上午8:05:38。今天是今天的00:00。 这当然会以负值结束,因为CurDateTime比今天的日期小 你需要从CurDateTime的午夜datetime中减去它。 像这样:
var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 00, 00, 00);
var difference = CurDateTime - midnight;
var inMin = difference.TotalMinutes;
就你而言:
[NotMapped]
public TimeSpan? FirstStartDifference
{
get
{
if(CurDateTime != null)
{
var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 00, 00, 00);
var difference = CurDateTime - midnight
return difference;
}
return null;
}
}
因此,您将从DateTime中减去CurDateTime,即2017年10月18日上午8:05:38。今天是今天的00:00。 这当然会以负值结束,因为CurDateTime比今天的日期小 你需要从CurDateTime的午夜datetime中减去它。 像这样:
var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 00, 00, 00);
var difference = CurDateTime - midnight;
var inMin = difference.TotalMinutes;
就你而言:
[NotMapped]
public TimeSpan? FirstStartDifference
{
get
{
if(CurDateTime != null)
{
var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 00, 00, 00);
var difference = CurDateTime - midnight
return difference;
}
return null;
}
}
午夜是哪一个属性?现在是宵禁时间吗?此外,您需要两个日期之间的数据,为什么要计算:FirstStartDifference?已更新question@alaa_sayeghmidnight,我的意思是00:00@alaa_sayeghtime从午夜到午夜,从midnight@BugFinderWhich午夜是几点?现在是宵禁时间吗?此外,您需要两个日期之间的数据,为什么要计算:FirstStartDifference?已更新question@alaa_sayeghmidnight,我的意思是00:00@alaa_sayeghtime从午夜到午夜,从midnight@BugFinderHm. 我在这部分有错误
CurDateTime.Year,CurDateTime.Month,CurDateTime.Day
。“DateTime”不包含“Year”的定义,并且找不到接受“DateTime”类型的第一个参数的扩展方法“Year”(是否缺少using指令或程序集引用?)是,因为CurDateTime为null。。。让我们检查可为空的值。如果为空,则无法计算…@S.E,请检查!嗯。这部分我有错误CurDateTime.Year,CurDateTime.Month,CurDateTime.Day
。“DateTime”不包含“Year”的定义,并且找不到接受“DateTime”类型的第一个参数的扩展方法“Year”(是否缺少using指令或程序集引用?)是,因为CurDateTime为null。。。让我们检查可为空的值。如果为空,则无法计算…@S.E,请检查!