6
« il: 02 Apr 2012, 13:09:38 »
Ciao Vales, ho necessita' di aggiungere un giorno in piu' nel motore di calcolo che sto utilizzando, ho trovato il codice che segue, come faccio a farlo funzionare con il codice gia' creato?
public String addDay(String dateDbf,int dayToAdd){
String dataNew = "";
String DATE_FORMAT = "yyyyMMdd";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
try{
Calendar c1 = Calendar.getInstance();
int anno = Integer.parseInt(dateDbf.substring(0,4));
int mese = Integer.parseInt(dateDbf.substring(4,6))-1;
int giorno = Integer.parseInt(dateDbf.substring(6,8));
c1.set(anno, mese, giorno);
c1.add(Calendar.DATE,dayToAdd);
dataNew = sdf.format(c1.getTime());
}catch (Exception e){
e.printStackTrace();
}
// RITORNA DIFFERENZA DATE
return dataNew;
}
Questo e' il codice tuttora online per il calcolo della differenza di date.
function controllo_data(stringa){
var espressione = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
if (!espressione.test(stringa)) {
return false;
}else{
anno = parseInt(stringa.substr(6,4),10);
mese = parseInt(stringa.substr(3, 2),10);
giorno = parseInt(stringa.substr(0, 2),10);
var data=new Date(anno, mese-1, giorno);
if(data.getFullYear()==anno && data.getMonth()+1==mese && data.getDate()==giorno){
return true;
}else{
return false;
}
}
}
function confronta_data(data1, data2){
// controllo validità formato data
if(controllo_data(data1) && controllo_data(data2)){
//trasformo le date nel formato aaaammgg (es. 20081103)
data1str = data1.substr(6,4)+data1.substr(3, 2)+data1.substr(0, 2);
data2str = data2.substr(6,4)+data2.substr(3, 2)+data2.substr(0, 2);
//controllo se la seconda data è successiva alla prima
//document.write(data1str);
//document.write(data2str-data1str);
if ((data2str-data1str)<0) {
alert("La data iniziale deve essere precedente quella finale");
}else{
alert("ok");
}
}else{
alert("Il formato data deve essere gg/mm/aaaa");
}
}
function giorni_differenza(form){
//document.write("sono qui");
var data1=form.elements['data_1'].value;
var data2=form.elements['data_2'].value;
//document.write(data1);
if(!controllo_data(data1) || !controllo_data(data2)){
alert('Inserire le date nel formato gg/mm/aaaa');
return -1;
}
/* if(!confronta_data(data1,data2)){
alert('La data di inizio deve essere precedente quella di fine');
return -1;
}*/
anno1 = parseInt(data1.substr(6,4),10);
mese1 = parseInt(data1.substr(3, 2),10);
giorno1 = parseInt(data1.substr(0,2),10);
anno2 = parseInt(data2.substr(6,4),10);
mese2 = parseInt(data2.substr(3, 2),10);
giorno2 = parseInt(data2.substr(0,2),10);
var dataok1=new Date(anno1, mese1-1, giorno1);
var dataok2=new Date(anno2, mese2-1, giorno2);
differenza = dataok2-dataok1;
giorni_differenza = new String(differenza/86400000);
form.elements['diff'].value=giorni_differenza;
alert(giorni_differenza+' giorni di differenza');
return giorni_differenza;
}