正确的格式输入日期与一天中的时间

时间:2016-02-02 23:13:59

标签: c# datetime time

我希望能够计算从2016年2月12日下午12:35到2016年2月14日下午1:45之间的小时和分钟时间,但无法确定正确的格式输入它。 编辑:应该补充说,时间之间的跨度将存储在arraylist中,每个客户一个跨度。

2 个答案:

答案 0 :(得分:0)

基本上,你需要这样的东西:

var dateA = new DateTime(2016,2,13,12,35,0);
var dateB = new DateTime(2016,2,14,1,45,0);

var timespan = dateB - dateA;
var hours = timespan.Hours;
bar minutes = timespan.Minutes;

答案 1 :(得分:0)

以下是我的意思:

Func<string, DateTime?> tryParse = t =>
{
    DateTime output;
    if (DateTime.TryParseExact(
        t,
        new [] { "h:mmtt MM/dd/yyyy" },
        System.Globalization.CultureInfo.CurrentCulture,
        System.Globalization.DateTimeStyles.AssumeLocal,
        out output))
    {
        return output;
    }
    return null;
};

var dt1 = tryParse("12:35pm 02/13/2016");
var dt2 = tryParse("1:45pm 02/14/2016");

TimeSpan? ts = null;
if (dt1.HasValue && dt2.HasValue)
{
    ts = dt2.Value.Subtract(dt1.Value);
}

if (ts.HasValue)
{
    Console.WriteLine(
        String.Format(
            "{0} hours & {1} minutes",
            ts.Value.Hours,
            ts.Value.Minutes));
}