日期:2014-05-17  浏览次数:20634 次

后台时间计算问题
现在在做会议室预约功能,用色块代表时间段  现在遇到一个计算时间的问题!用当前时间(A)+可预约的天数(比如传来的天数是7)(B)=可预约的天数(C),这个计算出来的是可预约时间(可预约的色块我让它是红色)C得到的是从当前时间到传来的天数7  算出这7天可以预约 7天以后的就不能预约了,让色块变成绿色,  怎么计算 ?怎么判断?

------解决方案--------------------
其实页面样式控制跟判断都不难!!!
  主要的在于你的可预约的天数
这个会议室资源可是要时时更新的、也许你在判断的那一刻、这个资源就被别人预定占用了!

先撇开这些不说:
用JS计算当前时间加上天数(可预约时间)

var newDate   = new Date();// 现在时间
 var the_year  = nowTime.getYear(); 
 var the_month = nowTime.getMonth() + 1; 
 var the_day   = nowTime.getDate()+7;  //7为可预约天数
 newDate = new Date(the_year,the_month,the_day);


色块颜色改变:
这个就得看你生成的色块某个属性的规律了!
如、色块的name属性的规律为一天一个
id="20130101"
id="20130102"
id="20130103"
id="20130104"
那么继续使用之前js代码的当前时间
var newDate   = new Date();// 现在时间
 var the_year  = nowTime.getYear(); 
 var the_month = nowTime.getMonth() + 1; 
var the_day   = nowTime.getDate(); 
for(var i = 1 ;i <= 7(可预约天数) ; i++){
    the_day =  nowTime.getDate() + i ; 
    document.getElementById(the_year+the_month+the_day).style.backgroundColor = "red";
}



大概就这么一种思路!
个人理解!
------解决方案--------------------
引用:
引用:你逻辑不是挺清晰的么?你的色块是如何生成了,一天一小块?不知道怎么算这个时间啊
long ltemp2 = System.currentTimeMillis();这个是当前时间A  传来控制天数7  我要把这七天也转换为long型把?所以应该是 7*86400000 B,得到这七天可以预约?怎么让色块塞到这七天里呢  又怎么判断这……


不要用毫秒计算,用Calendar类的add(Calendar.DATE, 7);来计算,
比如今天是2013/01/04 它会返回 2013/01/11,这样你在2013/01/04 到 2013/01/11 对应色块必成红色就可以了。

还是回到我刚才的问题,你的色块是如何生成的?和日期又是如何映射的?