0

在我的 C# 应用程序中,要求功能之一是在某个用户界面(Windows 窗体)上,用户输入开始时间、结束时间和日期。然后应用程序将生成正确的开始日期时间和结束日期时间以保存回数据库。下面列出了详细信息/场景。

任何想法?先感谢您。

示例 1:

如果
输入日期:03/15/2013
输入开始时间:11:45 PM
输入结束时间:1:10 AM
那么,
输出开始日期时间:“03/15/2013 23:45:00”
输出结束-date-time: "03/16/2013 01:10:00" // 注意:输出 end-date-time 是 start-date-time 后 1 天

示例 2:

如果
输入日期:03/15/2013
输入开始时间:晚上 9:45
输入结束时间:晚上 10:30
那么,
输出开始日期时间:“03/15/2013 21:45:00”
输出结束-date-time: "03/15/2013 22:30:00" // 注意:start-date-time 和 end-date-time 具有相同的日期

示例 3:

如果
输入日期:10/25/2012
输入开始时间:上午 6:10
输入结束时间:晚上 8:15 那么,
输出开始日期时间:“10/25/2012 06:10:00”
输出结束-date-time: "10/25/2012 20:15:00" // 注意:start-date-time 和 end-date-time 具有相同的日期

示例 4:

如果
输入日期:07/12/2010
输入开始时间:上午 6:10
输入结束时间:上午 4:25 那么,
输出开始日期时间:“07/12/2010 06:10:00”
输出结束-date-time: "07/13/2010 04:25:00" // 注意:输出 end-date-time 是 start-date-time 后 1 天

4

3 回答 3

1
    string InputDate = "3/15/2013";
    string InputStartTime = "11:45 PM";
    string InputEndTime = "1:10 AM";
    DateTime StartTime, EndTime;
    StartTime = Convert.ToDateTime(InputDate + " " + InputStartTime);
    EndTime = Convert.ToDateTime(InputDate + " " + InputEndTime);
    if (EndTime < StartTime)
        EndTime.AddDays(1);
    string OutputStartTime = StartTime.ToString("MM/dd/yyyy HH:mm:ss");
    string OutputEndTime = EndTime.ToString("MM/dd/yyyy HH:mm:ss");
于 2013-03-27T14:08:14.607 回答
0
var date = DateTime.ParseExact("03/15/2013 11:45 PM", "MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);

我让您根据您的业务规则制定创建作为第一个参数传递给此函数的字符串所需的逻辑。

于 2013-03-27T14:06:37.070 回答
0

在伪代码中:

  • D1通过组合输入日期和输入开始时间创建开始日期
  • D2通过组合输入日期和输入结束时间创建结束日期
  • 如果D2在之前,D1则添加 1 天D2
于 2013-03-27T14:13:26.700 回答