我有一个叫做Duration的属性,这个属性是对另外两个叫做StartDate和EndDate的属性的计算。
问题是,我需要这两个日期之间的差异在格式"hh: mm",我可以做到这一点与大量的代码和解决方案,我在互联网上找到的,但我总是有同样的问题在最后,天计数...
今天我有以下代码:
[NotMapped]
public string Duration
{
get
{
if (StartDate != null && EndDate != null)
{
return (EndDate - StartDate).Value.ToString().Substring(0, 5);
}
return null;
}
set
{
if (value == null) throw new ArgumentNullException(nameof(value));
}
}
考虑到我们有以下开始和结束日期值:开始日期=2019/03/14-上午10:43结束日期=2019/03/14-上午11:00
它显示这样的输出:
持续时间=00:16
但当我有超过24小时的差异时,它会计算一天,我得到一个无效值。
例如:StartDate=2019/03/05-03:00 AM EndDate=2019/03/15-04:00 AM
它打印:
持续时间=1.01:
这是一天,我需要以小时为单位:分钟格式。
谁能帮帮我吗?
随着时间的推移:
TimeSpan span = (EndDate - StartDate);
String.Format("{0}:{1}",span.Hours, span.Minutes);
这是如何做到的:
DateTime startDate = DateTime.Now;
DateTime endDate = startDate.AddDays(1).AddHours(2).AddMinutes(3);
TimeSpan difference = endDate - startDate;
int totalHours = (int)difference.TotalMinutes / 60;
int totalMinutes = (int)difference.TotalMinutes % 60;
Console.WriteLine(string.Format("{0}:{1}", totalHours.ToString("D2"), totalMinutes.ToString("D2")));
输出:
26:03
正如你所说,26小时3分钟过去了。
最好不要使用SubString。
如果你从另一个日期中减去一个日期,你会得到一个TimeSpan
您可以对其执行ToString()
,或使用其属性显示所需内容,但是,由于您希望显示总小时数,而不仅仅是小时数部分,因此必须使用各个属性:
var startDate = DateTime.Now;
var endDate = startDate.AddHours(30).AddMinutes(20);
var difference = endDate - startDate;
var hoursComponent = ((int)difference.TotalHours).ToString("D2");
var minutesComponent = difference.Minutes.ToString("D2");
Console.WriteLine($"{hoursComponent}:{minutesComponent}");
像这样的东西应该可以做到这一点。我把D2放在里面,强制它在只有一位数的情况下显示前导零。我把TotalHour
转换成int
,因为TotalHour实际上返回了一个带有您不想要的分数成分的双精度。我没有使用TotalMinute
,因为我认为第二个组件不相关。
问题内容: 如果我有两个这样的日期时间: 如何以以下格式获取这些日期时间之间的差异: 我用 但是我只有时间。 问题答案: 试试这个- 询问: 输出:
问题内容: 我试图获取当前日期与PHP 调用中的日期之间的差异,例如:。如何获得两个日期之间的时间差。我想有一个比较两个日期的函数,然后返回分钟,返回小时和返回天等等。 我应该怎么做? 编辑:当前接受的答案已经完全做了我想要做的。我建议您以方便使用的方式获取它,以便以PHP 函数使用的形式获取两个日期之间的时间。如果您对PHP不太熟悉,那么这是从1970年1月1日开始的秒数。这对于PHP后端非常有
问题内容: 我正在使用ES,并且我需要一个查询,该查询返回两个datetime(mysql timediff)之间的差,但是还没有找到ES的任何功能来做到这一点。有人可以帮助我吗? MySQL查询 谢谢! 问题答案: 最好的是脚本字段。如果您已启用动态脚本并且这些日期字段在映射中定义为日期,则上述搜索查询应该可以正常工作。 请注意,您将获得epoch的结果,您需要将其转换为面额。 您可以在此处阅读
问题内容: 我在-type字段中将上次登录时间存储在MySQL中。当用户登录时,我想获取上次登录时间与当前时间(我使用)之间的时差。 我该如何计算? 问题答案: 使用MySQL函数。例如,您可以使用: 在您的情况下,函数的第三个参数将是当前登录时间()。第二个参数是上次登录时间,该时间已在数据库中。
我试图得到之间的差异的当前日期作为和一个日期从PHP调用例如:。我该如何计算这两个日期之间的时间差异。我想有一个函数,比较两个日期和
问题内容: 我正在为员工开发时间管理系统。 我想要持续时间员工迟到多少时间,或者他早到了多少时间。 我有以下结构。 我想要迟到的报告(即谁在ActualInTime之后的清晨到达,并且在hh:mm:ss中持续了多少时间),并且还想要提早去(即谁在格式为hh:mm:ss的持续时间中在ActualOutTime之前的傍晚去了) 那你能帮我吗。??? 问题答案: 此代码可能会帮助您…