请教:有什么方法判断某个房间,在指定的时间段里面能不能被预订或者出售。
rmst表中有字段Rno(房号),R00(表示此房间当天的状态),R01到R29表示第二天开始,一共29天内的状态,如果R00为空,表示RNO代表的房号在当天是可以被预订或者开出去的。R01为空,表示Rno代表的房号在第二天是可以被预订或者开房出去的。以此类推,R29表示第30天是否可以被预订或者开房(为空表示可以,其他都不行). 现在要写一个方法,判断某个房间,在指定的时间段里面能不能被预订或者出售。 /// <summary>
/// 房间在指定的时间里面,能否被开出去,或者订出去
/// </summary>
/// <param name="dtb">开始时间</param>
/// <param name="dte">结束时间 </param>
/// <returns></returns>
public static bool CanOpenorBook(string rno, DateTime begtime, DateTime endtime)
{ DataRow dr = SystemMoudle.SqlForDll.QueryTable("Select R00,R01,R02,R03,R04,R05,R06,R07,R08,R09,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20," +
"R21,R22,R23,R24,R25,R26,R27,R28,R29 From " + SystemMoudle.PubTables.Rmst + " Where RNO = '" + rno + "'").Rows [0]; int begin = (begtime.Date - DateTime.Now.Date).Days;
if (begin >29) return true;
int end = (endtime.Date - begtime.Date).Days;
if (begin < 0) { end = begin + end; begin = 0; }
if (begin + end > 30) { end = 30 - begin; }
bool check = true;
if (end == 0)
{
if (dr["R00"].ToString().Trim() != "")
{ check = false; }
}
else
{ for (int i = begin; i < begin + end; i++)
{ if (dr["R" + i.ToString("D2")].ToString().Trim() != "")
{ check = false; break; }
}
}
return check;
}