使用 C# 计算 MVC 模型中的时间跨度
Posted
技术标签:
【中文标题】使用 C# 计算 MVC 模型中的时间跨度【英文标题】:Calculate time span in MVC Model using C# 【发布时间】:2019-10-17 21:26:30 【问题描述】:我的 MVC 项目中有一个存储活动的模型。我需要显示开始时间和结束时间之间的差异。 这是我的模型类:
[Table("DailyCrewActivity")]
public partial class DailyCrewActivity
[Key]
public int id get; set;
[Display(Name = "Crew Name")]
[ForeignKey("DailyCrew")]
public int daily_crew_id get; set;
[Display(Name = "Task Number")]
[ForeignKey("ContractTask")]
public int contract_task_id get; set;
[Display(Name = "Activity Date")]
[DisplayFormat(DataFormatString = "0:MM/dd/yyyy")]
public DateTime activity_date get; set;
[Required]
[StringLength(50)]
[Display(Name = "Activity Code")]
public string activity_code get; set;
[Display(Name = "Start Time")]
[DisplayFormat(DataFormatString = "0:hh:mm")]
public string activity_start get; set;
[Display(Name = "End Time")]
[DisplayFormat(DataFormatString = "0:hh:mm")]
public string activity_end get; set;
[NotMapped]
[Display(Name = "Hours")]
[DisplayFormat(DataFormatString = "0:#.##")]
public decimal ElapsedTime
get
decimal duration = 0;
if (String.IsNullOrEmpty(activity_start) && String.IsNullOrEmpty(activity_end))
TimeSpan spanStart;
TimeSpan spanEnd;
if (TimeSpan.TryParse(activity_start, out spanStart) && TimeSpan.TryParse(activity_end, out spanEnd))
duration = Convert.ToDecimal(spanEnd - spanStart);
return duration;
public DailyCrew DailyCrew get; set;
public ContractTask ContractTask get; set;
我没有得到返回到 ElapsedTime 的计算。是因为我将时间存储在一个字符串中,然后将其解析为 TimeSpan 吗? 我不确定这是怎么回事。
谢谢
瑞恩
【问题讨论】:
String.IsNullOrEmpty(activity_start) && String.IsNullOrEmpty(activity_end)
你没有错过!
(或== false
)吗?
【参考方案1】:
您正在检查两个值是否为空,这不会给您任何信息。您需要检查两者的非空/空值:
if (!String.IsNullOrEmpty(activity_start) && !String.IsNullOrEmpty(activity_end))
...
【讨论】:
以上是关于使用 C# 计算 MVC 模型中的时间跨度的主要内容,如果未能解决你的问题,请参考以下文章