ciao a tutti!
ho visto che è un argomento molto trattato ma non ho trovato nulla di specificpo.
io devo sommare dei giorni ad una data e mi sono fatto questa funzione:
specifico che per comodità di inserimento ho messo
che 30 gg = 1 mese , 60 gg = 2 mesi , ... , 360 gg = 1 anno
tutto funziona perfettamento tramme che per i mesi di agosto e settembre, ovvero:codice://SOMMA UN NUMERO DI GIORNI AD UNA DATA function SOMdat( DATini , GIOnum ) { //DATini = DATA INIZIALE A CUI SOMMARE IL NUMERO DI GIORNI //GIOnum = NUMERO DI GIORNI DA SOMMARE //IMPOSTAZIONE VARIABILI var GIOnum = parseInt( GIOnum ) ; //SPLIT DELLA DATA PASSATA var DATtmp = DATini.split( "/" ) ; //IMPOSTAZIONE GIORNO , MESE , ANNO DELLA DATA PASSATA var GIOtmp = DATtmp[0] ; var MEStmp = parseInt( DATtmp[1] ) - 1 ; var ANNtmp = DATtmp[2] ; //COSTRUZIONE DATA var NEWdat = new Date( ANNtmp , parseInt( MEStmp , 10 ) , GIOtmp ) ; //VERIFICA GIOnum MULTIPLO DI 30 if ( ( GIOnum % 30 ) == 0 ) { //CALCOLO DEI MESI DA SOMMARE var MESsom = parseInt( ( GIOnum / 30 ) + 1 ) ; //IMPOSTAZIONI VARIABILI GIOsom = parseInt( NEWdat.getDate() - 1 ) ; MESsom = parseInt( NEWdat.getMonth() + MESsom ) ; ANNsom = NEWdat.getYear() ; //VERIFICA GIOsom if ( GIOsom == 0 ) { TMPdif = MESsom - MEStmp ; if ( TMPdif > 1 ) { MESsom = MESsom - 1 ; GIOsom = ULTgio( MESsom , ANNsom ) ; } } }else{ //SOMMA DEI GIORNI NEWdat.setDate( NEWdat.getDate() + GIOnum - 1 ) ; //IMPOSTAZIONI VARIABILI GIOsom = NEWdat.getDate() ; MESsom = parseInt( NEWdat.getMonth() ) + 1 ; ANNsom = NEWdat.getYear() ; } //VERIFICA MESsom while( MESsom > 12 ) { MESsom = MESsom - 12 ; ANNsom = ANNsom + 1 ; } //ELABORAZIONI RISULTATI if ( String( GIOsom ).length == 1 ) { GIOsom = "0" + GIOsom ; } if ( String( MESsom ).length == 1 ) { MESsom = "0" + MESsom ; } //COSTRUZIONE DATA SOMdat = GIOsom + "/" + MESsom + "/" + ANNsom ; //RISULTATO return SOMdat ; }
01/08/2009 + 12 mesi = 30/11/2009 invece di 31/07/2010
05/08/2009 + 12 mesi = 04/12/2009 invece di 04/08/2010
01/09/2009 + 12 mesi = 30/11/2009 invece di 31/08/2010
13/09/2009 + 12 mesi = 12/12/2009 invece di 12/09/2010
qualche idea???? grz