【问题标题】:C# How to create Date and Time Range?C#如何创建日期和时间范围?
【发布时间】:2010-12-14 09:33:13
【问题描述】:

我有一个程序可以处理日志文本文件,检索日期时间,将日期时间转换为系统的 DateTime 格式。

但是,该程序似乎无法识别所选的各种日期时间范围。程序应检索用户选择的日期和时间之间的记录。

问题可能是由于代码的顺序造成的?

有人可以就代码提供建议吗?谢谢!

密码:

            String timeDate2 = result1.ToString("MM/dd/yyyy HH:mm:ss");

            Console.WriteLine("The last written time to the registry was : " + timeDate2);

            TimeSpan.TryParse("12/02/2010 16:04:17", out t1);
            TimeSpan.TryParse("12/09/2010 05:12:42", out t2);
            TimeSpan.TryParse(timeDate2, out t3);

            if ((t3 >= t1 && t3 <= t2) == true)    // Is t3 between t1 and t2?
            {
                foreach (String k in lines.Skip(12))
                {
                    Console.WriteLine(k);
                }
             x = 1;
            }

            else
            {
                x = 2;
            }

            Console.WriteLine("============================================================");

        }

        if (x == 2)
        {
            Console.WriteLine("There is no selected days within the log files!");
        }

【问题讨论】:

  • == true 是多余的,你确定 'lines' 有超过 12 行吗?
  • 验证 TryParse 的 (bool) 结果(如果文本被正确解码,则应为 true)并检查“out”值,这是您期望的日期和/或时间吗?

标签: c# datetime date-range


【解决方案1】:
TimeSpan.TryParse("12/02/2010 16:04:17", out t1);
TimeSpan.TryParse("12/09/2010 05:12:42", out t2);
TimeSpan.TryParse(timeDate2, out t3);

TimeSpan 通常没有日期,因为它是一个时间跨度,因此有多少天、多少小时和多少分钟。不是约会。 TimeSpan 是日期之间的时间定义。 More info on the MSDN page

将其修复为DateTime.TryParse

(并检查解析后t1/t2/t3的值是什么)

【讨论】:

  • 该程序正在使用 DateTime.TryParseExact,结果将是等“12/09/2010 05:12:42”。
  • TimeSpan.TryParse的参数格式为'[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]' 例如 "99.23:59:59" 99 天 23 小时 59 分 59 秒。
  • 抱歉刚才没有正确读取 t1 的结果:"12/2/2010 4:04:17 PM" t2:"12/5/2010 5:12:42 AM"和 timeDate: "12/09/2010 05:12:42" 在 TimeSpan 更改为 DateTime 之后。
  • @JavaNoob:如果实际程序使用 DateTime.TryParse(-Exact),为什么在您的示例中使用 TimeSpan.TryParse?
  • 或许也可以将 if 语句重写为“if ((t3 >= t1) && (t3
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多