输入开始时间,结束时间和日期产生适当的开始日期时间和结束日期时间

时间:2013-03-27 14:01:07

标签: c# winforms

在我的C#应用​​程序中,需求函数之一是在某个用户界面(windows窗体)用户输入开始时间,结束时间和日期。然后,应用程序将生成正确的开始日期时间和结束日期时间以保存回数据库。细节/场景如下所列。

有什么想法吗?提前谢谢。

示例1:

如果
输入日期:03/15/2013
输入开始时间:晚上11:45
输入结束时间:上午1:10
然后,
输出开始日期时间:“03/15/2013 23:45:00”
输出结束日期时间:“03/16/2013 01:10:00”//注意:输出结束日期时间是开始日期时间后的1天

示例2:

如果
输入日期:03/15/2013
输入开始时间:下午9:45
输入结束时间:晚上10:30
然后,
输出开始日期时间:“03/15/2013 21:45:00”
输出结束日期时间:“03/15/2013 22:30:00”//注意:开始日期时间和结束日期时间具有相同的日期

示例3:

如果
输入日期:10/25/2012
输入开始时间:上午6:10
输入结束时间:晚上8:15 然后,
输出开始日期时间:“10/25/2012 06:10:00”
输出结束日期时间:“10/25/2012 20:15:00”//注意:开始日期时间和结束日期时间具有相同的日期

示例4:

如果
输入日期:07/12/2010
输入开始时间:上午6:10
输入结束时间:上午4:25 然后,
输出开始日期时间:“07/12/2010 06:10:00”
输出结束日期时间:“07/13/2010 04:25:00”//注意:输出结束日期时间是开始日期时间后的第1天

3 个答案:

答案 0 :(得分: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");

答案 1 :(得分:0)

var date = DateTime.ParseExact("03/15/2013 11:45 PM", "MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);

我留给你的是根据你的业务规则计算创建作为第一个参数传递给该函数的字符串所需的逻辑。

答案 2 :(得分:0)

在伪代码中:

  • 通过组合输入日期和输入开始时间来创建开始日期D1
  • 通过组合输入日期和输入结束时间来创建结束日期D2
  • 如果D2D1之前,则在D2添加1天