TimeSpan或DateTime作为参数解析为Ticks的小时和分钟

时间:2015-09-17 18:18:02

标签: c# html asp.net .net date

我的表单有两个时间输入:

  1. 首先表示小时数,maxlength为3且仅接受整数。
  2. 秒表示分钟,maxlength为2,正则表达式掩码为最大值59。
  3. <input type="text" id="timeHour" name="timeHour" class="form-control" placeholder="000" maxlength="3" />
    
    <input type="text" id="timeMinute" name="timeMinute" class="form-control" placeholder="00" maxlength="2" />
    

    用于记录用户在某项任务中工作的时间。 例如,我工作100小时15分钟,我将在第一个输入中输入100 和第二个15。

    在我的ActionResult中,timeHour和timeMinute以字符串形式出现。

    我希望将小时和分钟相加,然后将其解析为Ticks。

    哪个是最好用的日期对象?

2 个答案:

答案 0 :(得分:4)

只需使用TimeSpan即可。你不想约会。

  

表示时间间隔。

var ticks = new TimeSpan(hours, minutes, 0).Ticks;

答案 1 :(得分:1)

您无法将三位数小时解析为DateTime值。您可以将分钟值解析为DateTime,但对组件使用整数值更有意义:

int hour = Int32.Parse(dateTimeHour);
int minute = Int32.Parse(dateTimeMinute);

您无法使用小时值创建DateTime值,但您可以先创建DateTime值,然后再添加小时数。例如:

DateTime d = new DateTime(1, 1, 1, 0, minute, 0).AddHours(hour);

编辑:

如果您只是想要结果,您可以直接从小时和分钟计算:

long ticks = (hours * 60 + minutes) * 600000000L;