Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2005, 17:57   #1
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
[JAVA]confronto date con GregorianCalendar

Dunque devo confrontare una data che estraggo da un campo DATE di Oracle con la data di oggi per vedere quale viene prima (ovviamente le 2 date possono anche coincidere)
Ho pensato(più che altro è la prima cosa che ho trovato :-) ) di usare l'oggetto GregorianCalendar e il metodo compareTo dell'oggetto Date per il confronto.
Ho quindi usato il seguente codice per estrarre la data di oggi:

GregorianCalendar c=new GregorianCalendar() ;
Date data di oggi=c.getTime();

e il seguente codice per avere la data dal db:

String select="SELECT...";
Resultset rs = stmt.executeQuery(sel);
if(rs.next()) {
Date dataDb=rs.getDate("DATA");
}
GregorianCalendar c2=new GregorianCalendar() ;
c2.setTime(dataDb);
Date dataDaConfrontare=c2.getTime();


Ecco facendomi stampare le 2 date ottengo(in questo caso anche nel db c'è la data di oggi):
data di oggi: Jun 01 17:55:08 CEST 2005
data nel db: Jun 01 00:00:00 CEST 2005

il confronto col compareTo() risulta quindi impreciso in quanto da una parte ci sono minuti ecc. e dall'altra no(e in un caso come quello sopra ad esempio le 2 date non risulterebbero uguali per via dei minuti ecc.)-
ho quindi agito così:

Data di oggi:
GregorianCalendar c=new GregorianCalendar() ;
Date dataOggi=c.getTime();


Data db:
String select="SELECT...";
Resultset rs = stmt.executeQuery(sel);
if(rs.next()) {
Date dataDb=rs.getDate("DATA");
}
GregorianCalendar c2=new GregorianCalendar();
c2.setTime(dataDb);
int giorno2=c2.get(Calendar.DAY_OF_MONTH);
int anno2=c2.get(Calendar.YEAR);
int mese2=c2.get(Calendar.MONTH);
GregorianCalendar k2=new GregorianCalendar() ;
k2.set(anno2, mese2, giorno2);
Date dataDBfinale=k2.getTime();

Ok ora dataOggi e dataDBfinale sono confrontabili e tutto funziona; il codice non mi sembra però molto pulito e bello.

in particolare è questa parte(nel mio codice):
int giorno2=c2.get(Calendar.DAY_OF_MONTH);
int anno2=c2.get(Calendar.YEAR);
int mese2=c2.get(Calendar.MONTH);
GregorianCalendar k2=new GregorianCalendar() ;
k2.set(anno2, mese2, giorno2);

che mi lascia insoddisfatto ma d'altra parte non riesco a fare altro per avere due date confrontabili(tra laltro a me di confrontare minuti,secondi e ore non frega nulla)

Che potevo fare (sempre usando GregorianCalendar)???
C'è anche qualche oggetto diverso (e migliore) rispetto a GregorianCalendar??
Intanto che qualcuno risponde cerco anchio di migliorare il codice

ciao e grazie
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2005, 18:54   #2
orpheus
Member
 
Iscritto dal: Apr 2004
Messaggi: 252
Ciao ma non potevi usare direttamente il metodo before di Date, ti ritorna true se la data è anteriore di quella passata come argomento.
orpheus è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2005, 12:47   #3
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
Quote:
Originariamente inviato da orpheus
Ciao ma non potevi usare direttamente il metodo before di Date, ti ritorna true se la data è anteriore di quella passata come argomento.
lunedì provo ma dubito funzion; infatti quando io estraggo la data dal db

if(rs.next()) {
Date dataDb=rs.getDate("DATA");
}
//e magari faccio anche il passo successivo:

GregorianCalendar c2=new GregorianCalendar();
c2.setTime(dataDb);
Date dataDBfinale=c2.getTime();
//


ottengo una data con minuti, secondi e ore posti a 0 e quindi il metodo before() immagino non possa confrontare tale data con quella di oggi

GregorianCalendar c=new GregorianCalendar() ;
Date dataOggi=c.getTime();
(oppure ottenuta usando direttamente l'oggetto Date)

infatti questa seconda data avrà anche i minuti ecc. e il confronto (in caso le date coincidano per quanto riguarda giorno mese e anno) non funzionerebbe.
io ho bisogno di avere 2 date che abbiano lo stesso valore per i minuti per le ore e per i secondi in modo da poter confrontare solo giorno mese e anno(anche perchè a me il resto non interessa)

grazie
prazision è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2005, 14:41   #4
prazision
Senior Member
 
L'Avatar di prazision
 
Iscritto dal: Dec 2003
Messaggi: 458
guardando il codice mi è sembrato meglio complicarlo ultriormente :-)

infatti(ho provato con mysql e non con oracle) sono giunto alla conclusione che è meglio scrivere così:

Data di oggi:
GregorianCalendar c=new GregorianCalendar() ;
c.set(Calendar.HOUR, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
Date dataOggi=c.getTime();


Data db:
String select="SELECT...";
Resultset rs = stmt.executeQuery(sel);
if(rs.next()) {
Date dataDb=rs.getDate("DATA");
}
GregorianCalendar c2=new GregorianCalendar();
c2.setTime(dataDb);
int giorno2=c2.get(Calendar.DAY_OF_MONTH);
int anno2=c2.get(Calendar.YEAR);
int mese2=c2.get(Calendar.MONTH);
GregorianCalendar k2=new GregorianCalendar() ;
k2.set(anno2, mese2, giorno2);
k2.set(Calendar.HOUR, 0);
k2.set(Calendar.MINUTE, 0);
k2.set(Calendar.SECOND, 0);
k2.set(Calendar.MILLISECOND, 0);
Date dataDBfinale=k2.getTime();

in questo modo son sicuro che entrambe le date avranno minuti,secondi ecc uguali a 0 e pertanto saranno confrontabili solo giorno mese e anno (prima invece settavo all'interno della data del db i minuti ecc allo stesso valore che avevano nella data odierna ma mi sembra rischioso)

la faccenda si complica...

cmq grazie
prazision è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Nel calcio dei robot vince solo Booster:...
Windows 11, smartphone e PC sono sempre ...
Account Xbox bloccato e giochi persi. Mi...
Apple M7 Ultra: in arrivo nel 2027 con b...
Le auto autonome ostacolano ambulanze e ...
Steam Machine, LED rosso e falsi positiv...
SharpEmu, nuovo emulatore PlayStation 5 ...
Sovranità sui dati: Oracle AI Dat...
Monopattini, scatta l'obbligo di assicur...
CMF by Nothing in offerta su Amazon: Bud...
Mirandetta: la moto elettrica stampata i...
'Scam Altman': Musk vs Altman in rissa d...
Apple Studio Display, il monitor 5K da 2...
Grok invia file .env e password in chiar...
GeForce RTX 5000: il sensore hotspot c'&...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:28.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v