Ragazzi...come faccio a incrementare una data con 4 mesi in più?
Ragazzi...come faccio a incrementare una data con 4 mesi in più?
La questione è che nel Date c'è solo un numero di millisecondi. Quindi parlare di "mesi" ... è vago e poco appropriato. Se puoi specificare un numero di giorni preciso, è facile calcolare il numero di millisecondi da aggiungere.Originariamente inviato da PerformancePort
Ragazzi...come faccio a incrementare una data con 4 mesi in più?
Altrimenti ti conviene mettere il Date in un (Gregorian)Calendar e usare il add() per aggiungere ad esempio 4 sul field MONTH. Lasciando a lui l'incombenza di fare tutti i calcoli (c'è solo la questione del trattamento lenient oppure non-lenient, cioè il fatto che possa risultare una data non valida e come trattarla).
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Capito, per esempio mettendo:
M'instanzio calendar,col settime passo la data e poi con add faccio semplicemente:
vuol dire che al mese passato al calendar, ne sommo altri 2 giusto?Codice PHP:c.add(Calendar.MONTH, +2);
Esatto. A parte il fatto, lo ripeto, che bisognerebbe considerare l'eventualità di ottenere una data non valida (non esistente).Originariamente inviato da PerformancePort
vuol dire che al mese passato al calendar, ne sommo altri 2 giusto?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Però nn mi torna una cosa. Ho una data nel db per esempio 10/02/2010. Se questa data è maggiore di due mesi rispetto a quella odierna sollevo un'eccezione.
Quindi dovrei recuperarmi la data del db, poi la data odierna che la metto in un gregorian è la sottraggo di 2. Se la data del db è afert la data odierna -2 mesi vuol dire che dovrò sollevare l'eccezione?
Scusami, ma se la data da incrementare è sul db perchè non usi le funzioni sql per le date?
Es. Sul db ho una colonna con campo data impostata al 02/03/2010.
La funzione sql (almeno du dB Oracle è cosi):
dove n è il numero di mesi (positivo o negativo) da aggiungere al valore di datacodice:add_months(data,n)
Allo stesso modo potresti utilizzare la funzione in una query sul Db del tipo
la funzione trunc serve per usare le date troncate ai soli giorni-mesi-anni senza ora e minuticodice:Select "qualcosa" from "mia_tabella" where trunc(campo_data_nel_dB) < trunc(add_months(sysdate,2))
La query restituisce "qualcosa" quando la data nel dB è minore della data odierna + 2 mesi
Nel momento in cui la data nel dB è = o > della data odierna + 2 mesi la query solleverà un eccezione di no data found che a quel punto puoi utilizzare...
Ovviamente quanto ho scritto non è la panacea ma solo un esempio grezzo di cosa è possibile fare..
ciao
Però...io cmq ho risolto lato codice con la classe Calendari...però grazie comunque...magari col DB mi tornerà anche utile ^^.