如何在Java / javascript中每天更改一次变量的值

时间:2013-07-19 19:04:59

标签: java javascript calendar

我正在尝试为我的学校制作一个显示当天日程安排的应用程序/脚本。这样做的结果是我的学校在8天的周期内运行,因此使事情复杂化。我有一个名为 cycleDay 的变量,但是我如何每天只更新一次,而不是更多?如果还有其他方法可以考虑这样做,请告诉我。

谢谢!

3 个答案:

答案 0 :(得分:0)

使用Datedocument.cookies更新您的变量。我还使用了两种实用方法来操作document.cookies

var today = parseInt(new Date().getTime()/(1000*3600*24))

var cookies = getCookies();

if(cookies["last_updated"] && cookies["last_updated"]<today) 
{
    /* update variable */
    setCookie("last_updated", today, 1);

}

/* utility methods starts, adding utility methods to simplify setting and getting    cookies  */
function setCookie(name, value, daysToLive) {
   var cookie = name + "=" + encodeURIComponent(value);
   if (typeof daysToLive === "number")
      cookie += "; max-age=" + (daysToLive*60*60*24);
   document.cookie = cookie;
 }

function getCookies() {
    var cookies = {}; // The object we will return
    var all = document.cookie; // Get all cookies in one big string
    if (all === "") // If the property is the empty string
       return cookies; // return an empty object
    var list = all.split("; "); // Split into individual name=value pairs
    for(var i = 0; i < list.length; i++) { // For each cookie
       var cookie = list[i];
       var p = cookie.indexOf("="); // Find the first = sign
       var name = cookie.substring(0,p); // Get cookie name
       var value = cookie.substring(p+1); // Get cookie value
       value = decodeURIComponent(value); // Decode the value
       cookies[name] = value; // Store name and value in object
  }
  return cookies;
}
/* utility methods ends */

答案 1 :(得分:0)

private Date lastUpdate = now()-1;
private myDailyChahgedValue;

Integer getMyDailyChangedValue() {
 if (lastUpdate <> now()) {
  myDailyChahgedValue ++;
}

return value;

}

请注意,这是一个显示主要想法的代码草案

答案 2 :(得分:0)

您可以使用getTime()对象的Date函数,该函数返回1970年1月1日之后的当前时间(以毫秒为单位)(来源:http://www.w3schools.com/jsref/jsref_gettime.asp),然后保存值(例如在var lastUpdateTime中)。然后定期检查当前时间与节省的时间之间的差异是否超过一天。如果是,请更新 cycleDay ,并将lastUpdateTime更新为更新时间。

例如,使用:

初始化
var lastUpdateTime = new Date().getTime();

代码中的其他地方:

var currentTime = new Date().getTime();
if(currentTime - lastUpdateTime >= 24*60*60*1000) // number of milliseconds in a day
{
    // update cycleDay
    lastUpdateTime = currentTime;
    // ...
}