我目前正在开发一个需要检查日期和时间的项目,然后将它们与我的数据库中的值进行比较。 在我们打开的时候,这需要在实时聊天中完成。 我是ASP.Net的新手,这让我很头疼。
我有一个包含这些行的表: - 工作日 - 开始时间 - 结束时间
在我的聊天控制器中,到目前为止我已经尝试了这个
private Model1Container db = new Model1Container();
public ActionResult Index(Openinghours openinghours)
{
ViewBag.Opening = db.OpeninghoursSatz.ToList();
string CurrentDay = DateTime.Now.DayOfWeek.ToString();
string CurrentTime = DateTime.Now.TimeOfDay.ToString();
bool IsWeekDay= db.OpeninghoursSatz.Where(i => i.weekday == CurrentDay).Any();
var Starttime = db.OpeninghoursSatz.Find(CurrentDay);
Debug.Write("!!++" + Starttime);
我的确切问题是将时间与表格中的两行进行比较。 我想过将值放在变量中然后比较它们,但必须有一个更清晰的方法。
我希望我能够指出我的问题是什么,如果没有请问。
关于,
尼科
编辑: 也许我应该说数据库保持它打开的小时和它关闭的小时(例如9和17)。我需要检查当前时间是否在这两者之间。
答案 0 :(得分:1)
int getStartHour = DateTime.Now.Hour;
int weekDay= (int)DateTime.Now.DayOfWeek;
bool value = db.OpeninghoursSatz.Where(m => getStartHour >= m.Starttime && getStartHour <= m.EndTime && m.weekday == weekDay).Any()
/// if everything is in int. or if in string
string getStartHour = DateTime.Now.Hour.ToString();
string weekDay= DateTime.Now.DayOfWeek.ToString();
bool value = db.OpeninghoursSatz.Where(m => getStartHour >= m.Starttime && getStartHour <= m.EndTime && m.weekday == weekDay).Any();
But in this case for Thursday , we will get Thursday, but in Int we will get 4.
答案 1 :(得分:0)
这条线对我来说很奇怪:
var Starttime = db.OpeninghoursSatz.Find(CurrentDay);
我想你应该把它改成:
if (IsWeekDay){
var Starttime = db.OpeninghoursSatz.Where(i => i.weekday == CurrentDay).First().StartTime;
Debug.Write("!!++" + Starttime);
}