如何解决用户无法预订已过时间的问题
How to fix that a user should not be able to book a time that has passed
我现在正在做一个学校项目,我们正在构建一个预订系统,它只显示今天的可用时间。 (我们没有使用日历)。我的问题是如何只显示今天的可用时间而不显示过去的时间?现在代码显示从 8.00 到 16.00 的所有时间,即使实际时间是 12.00。如果时钟是12点我只想显示12点以后的时间,希望大家能帮帮我,因为我还没有找到适合自己的解决方案。
代码在视图中是这样的:
@{
int open = 8;
decimal inHours = Convert.ToDecimal(Model.service.Duration) / Convert.ToDecimal(60);
int iterations = (int)Math.Floor(Convert.ToDecimal(open) / Convert.ToDecimal(inHours));
DateTime startTime = DateTime.Today;
startTime = startTime.AddHours(8);
List<DateTime> dt = new List<DateTime>();
for (int i = 0; i < iterations; i++)
{
DateTime endTime = startTime;
endTime = endTime.AddMinutes(Model.service.Duration);
if (!Model.service.Bookings.Any(x => x.StartTime == startTime))
{
@Html.ActionLink(startTime.ToString("HH:mm") + "-" + endTime.ToString("HH:mm"),
"BookService", "Booking", new
{
inBookingSystemId = Model.bookingSystem.BookingSystemId,
inServiceId = Model.service.ServiceId,
inStartTime = startTime.ToString()
}, new { @class = "btn btn-primary" })
}
startTime = endTime;
}
}
要仅显示一天中的其他时间,您可以这样做:
List<DateTime> dt = new List<DateTime>();
int hoursToAdd = 1;
int hourNow = DateTime.Now.Hour;
for (int i = hourNow ; i <= 23; i++)
{
dt.Add(DateTime.Now.AddHours(hoursToAdd));
hoursToAdd++;
}
这不是最好的方法,可能有更优雅的方法,但它会起作用。
我现在正在做一个学校项目,我们正在构建一个预订系统,它只显示今天的可用时间。 (我们没有使用日历)。我的问题是如何只显示今天的可用时间而不显示过去的时间?现在代码显示从 8.00 到 16.00 的所有时间,即使实际时间是 12.00。如果时钟是12点我只想显示12点以后的时间,希望大家能帮帮我,因为我还没有找到适合自己的解决方案。
代码在视图中是这样的:
@{
int open = 8;
decimal inHours = Convert.ToDecimal(Model.service.Duration) / Convert.ToDecimal(60);
int iterations = (int)Math.Floor(Convert.ToDecimal(open) / Convert.ToDecimal(inHours));
DateTime startTime = DateTime.Today;
startTime = startTime.AddHours(8);
List<DateTime> dt = new List<DateTime>();
for (int i = 0; i < iterations; i++)
{
DateTime endTime = startTime;
endTime = endTime.AddMinutes(Model.service.Duration);
if (!Model.service.Bookings.Any(x => x.StartTime == startTime))
{
@Html.ActionLink(startTime.ToString("HH:mm") + "-" + endTime.ToString("HH:mm"),
"BookService", "Booking", new
{
inBookingSystemId = Model.bookingSystem.BookingSystemId,
inServiceId = Model.service.ServiceId,
inStartTime = startTime.ToString()
}, new { @class = "btn btn-primary" })
}
startTime = endTime;
}
}
要仅显示一天中的其他时间,您可以这样做:
List<DateTime> dt = new List<DateTime>();
int hoursToAdd = 1;
int hourNow = DateTime.Now.Hour;
for (int i = hourNow ; i <= 23; i++)
{
dt.Add(DateTime.Now.AddHours(hoursToAdd));
hoursToAdd++;
}
这不是最好的方法,可能有更优雅的方法,但它会起作用。