在我的C#应用程序中,需求函数之一是在某个用户界面(windows窗体)用户输入开始时间,结束时间和日期。然后,应用程序将生成正确的开始日期时间和结束日期时间以保存回数据库。细节/场景如下所列。
有什么想法吗?提前谢谢。
如果
输入日期:03/15/2013
输入开始时间:晚上11:45
输入结束时间:上午1:10
然后,
输出开始日期时间:“03/15/2013 23:45:00”
输出结束日期时间:“03/16/2013 01:10:00”//注意:输出结束日期时间是开始日期时间后的1天
如果
输入日期:03/15/2013
输入开始时间:下午9:45
输入结束时间:晚上10:30
然后,
输出开始日期时间:“03/15/2013 21:45:00”
输出结束日期时间:“03/15/2013 22:30:00”//注意:开始日期时间和结束日期时间具有相同的日期
如果
输入日期:10/25/2012
输入开始时间:上午6:10
输入结束时间:晚上8:15
然后,
输出开始日期时间:“10/25/2012 06:10:00”
输出结束日期时间:“10/25/2012 20:15:00”//注意:开始日期时间和结束日期时间具有相同的日期
如果
输入日期:07/12/2010
输入开始时间:上午6:10
输入结束时间:上午4:25
然后,
输出开始日期时间:“07/12/2010 06:10:00”
输出结束日期时间:“07/13/2010 04:25:00”//注意:输出结束日期时间是开始日期时间后的第1天
答案 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
D2
在D1
之前,则在D2
添加1天