我被要求对表格进行更改,但有点不确定如何处理它:
雇用天数计算需要改变。
如果开始日期和结束日期相同,则计算应为一天 - 以24小时为基础 - 计算小时数,除以24并向上舍入到最接近的整数
所以从2013年11月14日08.00到14.11.2013 20.30是12.5小时 - 12.5除以24 = 0.52向上= 1天
二〇一三年十一月十四日。 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();
}
}
答案 0 :(得分:0)
查看TimeSpan
结构。它具有您可以使用的Hours
属性以及TotalDays
属性。
TimeSpan time = new TimeSpan(0, 36, 5, 0, 0);
var days = time.TotalDays;
答案 1 :(得分:0)
试试此代码
DateTime a = new DateTime(2013,11, 18, 02, 00, 00);
DateTime b = new DateTime(2013, 11, 20, 03, 30, 00);
double days = 0;
TimeSpan duration = b - a;
if (duration.TotalDays > 0 && duration.TotalDays < 1)
{
days = 1;
}
else if (duration.TotalHours > 0)
{
days = Math.Ceiling(duration.TotalHours / 24);
}