View Full Version : [JAVA] classe java.sql.Date Mi serve la data di ieri!!!
fbcyborg
20-07-2005, 11:58
Ciao!
per motivi che adesso non sto a spiegare mi serve un sistema, che data la data di oggi, mi restituisca un nuovo oggetto Date con la data di ieri.
del tipo: Date d = new Date();
Date ieri = d.getDataDiIeri();
GRAZIE!
franksisca
20-07-2005, 14:15
Fai un metodo che riceve l'oggetto data e ne restituisce un altro. Questo metodo restituisce la data di ieri, diminuendo il giorno di 1, e se uguale a 1 fai i controlli sul mese ed eventualmente anche sull'anno, e poi crei una nuova data passandogli i parametri giusti.
Credo che sia chiaro?!? ;)
Calendar ieri = new GregorianCalendar(2005, Calendar.JULY, 19);
Date date = ieri.getTime();
fbcyborg
20-07-2005, 14:42
franksisca: ci sono problemi con anni bisestili... o cmq quando un mese ha 30 giorni... se sono al 1° febbraio, che faccio? 1-1???? fa 30? o fa 31?
kingv stai scherzando o stai dicendo sul serio?
kingv stai scherzando o stai dicendo sul serio?
ti ho indicato le classi da usare, logicamente penso che tu voglia rendere parametrico il tutto:
public Date dataDiIeri(Date oggi)
{
Calendar ieri = new GregorianCalendar(oggi.getYear(), oggi.getMonth(), oggi.getDay());
ieri.add(Calendar.DATE, -1)
return ieri.getTime();
}
fbcyborg
20-07-2005, 14:53
OK, grazie, ma non mi funziona molto bene! ieri era 19...
import java.util.*;
public class DataIeri{
public static void main(String[] args){
Date d = new Date();
Date ieri = dataDiIeri(d);
System.out.println(ieri);
}
public static Date dataDiIeri(Date oggi)
{
Calendar ieri = new GregorianCalendar(oggi.getYear(), oggi.getMonth(), oggi.getDay());
ieri.add(Calendar.DATE, -1);
return ieri.getTime();
}
}
ciaociao
fbcyborg
20-07-2005, 14:59
Guarda, alla fine ho trovato 3 righe di codice che risolvono il problema sebbene sia deprecato qualcosa..
long aDay = 1000 * 60 * 60 * 24;
long now = System.currentTimeMillis();
Date yesterday = new Date(now - aDay);
scusa non avevo provato quello che ti ho postato, ora dovrebbe essere ok:
public class DataIeri{
public static void main(String[] args){
Date d = new Date();
Date ieri = dataDiIeri(d);
System.out.println(ieri);
}
public static Date dataDiIeri(Date oggi)
{
Calendar ieri = new GregorianCalendar();
ieri.setTime(oggi);
ieri.add(Calendar.DATE, -1);
return ieri.getTime();
}
}
fbcyborg
20-07-2005, 15:17
Grazie mille fratello
sblantipodi
20-07-2005, 15:35
Guarda, alla fine ho trovato 3 righe di codice che risolvono il problema sebbene sia deprecato qualcosa..
long aDay = 1000 * 60 * 60 * 24;
long now = System.currentTimeMillis();
Date yesterday = new Date(now - aDay);
In questo modo la var aDay conterrą un intero giorno espresso in millisecondi.
Non mi sembra una soluzione molto elegante :P
fbcyborg
20-07-2005, 15:57
Proovalo!!!! :D
import java.util.*;
public class DataIeri{
public static void main(String[] args){
long aDay = 1000 * 60 * 60 * 24;
long now = System.currentTimeMillis();
Date yesterday = new Date(now - aDay);
System.out.println(yesterday);
}
}
Funziooona!!!
sblantipodi
20-07-2005, 17:06
Proovalo!!!! :D
import java.util.*;
public class DataIeri{
public static void main(String[] args){
long aDay = 1000 * 60 * 60 * 24;
long now = System.currentTimeMillis();
Date yesterday = new Date(now - aDay);
System.out.println(yesterday);
}
}
Funziooona!!!
lo so che funziona :)
dicevo solo che era una soluzione poco elegante :P
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.