【发布时间】:2013-11-18 10:05:00
【问题描述】:
有人要求我更改表单,但有点不确定如何解决:
雇佣天数计算需要改变。
如果开始日期和结束日期相同,则计算应为一天 - 以 24 小时为基础 - 计算小时数,除以 24 并四舍五入到最接近的整数
所以从 14/11/2013 08.00 到 14.11.2013 20.30 是 12.5 小时 - 12.5 除以 24 = 0.52 向上取整 = 1 天
2013 年 11 月 14 日。 08.00 到 15.11.2013 20.30 是 36.5 小时 - 36.5/24= 1.52 - 向上取整 = 2 天
谁能帮忙??
这是我目前的代码:
private void noOfDaysRequired()
{
decimal days = 0;
if (txtEndTimeHH.Text != "" || txtEndTimeMM.Text != "")
{
DateTime bookingStartTime = DateTime.Parse(txtStartDate.Text + " " + txtStartTimeHH.Text + ":" + txtStartTimeMM.Text);
DateTime bookingEndTime = DateTime.Parse(txtEndDate.Text + " " + txtEndTimeHH.Text + ":" + txtEndTimeMM.Text);
bookingStartTime = bookingStartTime.AddMinutes(15);
TimeSpan noOfDays = bookingEndTime - bookingStartTime;
days = noOfDays.Days;
if (days == 0)
{
days += 1;
}
if (bookingEndTime.TimeOfDay.Ticks > bookingStartTime.TimeOfDay.Ticks)
{
days = days + 1;
}
lblDaysRequired.Text = days.ToString();
}
}
【问题讨论】:
-
显示一些代码,并说明您遇到问题的地方。当你表明你已经做出努力时,你更有可能获得帮助。
-
在您的计算中使用 Math.Ceiling 函数。获取天之间的时间跨度,如下所示:stackoverflow.com/questions/4946316/…
-
“从14.Nov.2013 15:30到15.Nov.2013 09:30”应该给多少天?一两个?