di già fatto non c'è nulla, ma puoi definire tu un oggetto che implementi le fuzioni che ti servono.
Per esempio puoi costruire un oggetto Period che implementa un costruttore:
codice:
var Period = function(startDate, endDate){
if(!startDate || !endDate || !startDate.getTime || !endDate.getTime){
var e = new Error();
e.message = "È necessario passare come argomenti due oggetti Date";
throw e;
}
if(startDate.getTime() > endDate.getTime()){
var e = new Error();
e.message = "L'oggetto startDate non può rappresentare una data posteriore a quella dell'endDate";
throw e;
}
this._startDate = startDate;
this._endDate = endDate;
}
Period.prototype = {
getStartDate : function(){
this._startDate;
},
getEndDate : function(){
this._endDate;
},
setStartDate : function(newDate){
if(!newDate || !newDate.getTime){
var e = new Error();
e.message = "È necessario passare come argomento un oggetto Date";
throw e;
}
this._startDate = newDate;
},
setEndDate : function(newDate){
if(!newDate || !newDate.getTime){
var e = new Error();
e.message = "È necessario passare come argomento un oggetto Date";
throw e;
}
this._endDate = newDate;
},
isInPeriod : function(d){
if(!d || !d.getTime){
var e = new Error();
e.message = "È necessario passare come argomento un oggetto Date";
throw e;
}
return this._startDate.getTime() <= d.getTime() && this._endDate.getTime() >= d.getTime();
}
}
Questo è un banalissimo oggetto chiamato Period.
Si istanzia con:
codice:
var p = new Period(d1, d2);
dove d1 e d2 DEVONO essere due oggetti Date, di cui startDate < endDate.
si possono ottenere le date con i metodi:
codice:
p.getStartDate(); p.getEndDate();
e settarle con:
codice:
p.setStartDate(newD1); p.setEndDate(newD2);
Ovviamente prende in ingresso SOLO oggetti date
ed infine puoi controllare se un oggetto Date è compreso in un intervallo con il metodo
codice:
p.isInPeriod(dToTest);
che prende in ingresso SOLO un oggetto Date.
Queste sono funzioni molto banali, ma se ne possono aggingere anche altre, dipende solo da te.