Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-11-2005, 22:53   #1
mercury841
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 409
[JSP]=gestione date

In che modo posso calcolare la data dopo due settimane partendo dalla data odierna?
per esempio se è il giorno 5/08/05
basta sommare 14+5=19/08/05
se invece ne ho 20 devo andare a valutare il mese e fare un riporto,per caso esiste qualcosa di già implementato?grazie

ciao
mercury841 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2005, 23:07   #2
mercury841
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 409
ho fatto in questo modo:
Codice:
long currentDate=System.currentTimeMillis();
long oneDay=1000*60*60*24;
int  giorni=10;
             
             
             SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
             String result=sdf.format(new Date(currentDate+(oneDay*giorni)));
             out.println("Fra 10 giorni="+result);
             result=sdf.format(new Date(currentDate));
             out.println("Oggi="+result);
Esiste un metodo per ricavarmi il giorno(per esempio domenica) dalla data???

ciao
mercury841 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2005, 23:38   #3
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
Codice:
The day-of-week is an integer value where 1 is Sunday, 2 is Monday, ..., and 7 is Saturday

    Calendar xmas = new GregorianCalendar(1998, Calendar.DECEMBER, 25);
    int dayOfWeek = xmas.get(Calendar.DAY_OF_WEEK);    // 6=Friday
    
    Calendar cal = new GregorianCalendar(2003, Calendar.JANUARY, 1);
    dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);         // 4=Wednesday
NapalM
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 00:10   #4
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da mercury841
In che modo posso calcolare la data dopo due settimane partendo dalla data odierna?
per esempio se è il giorno 5/08/05
basta sommare 14+5=19/08/05
se invece ne ho 20 devo andare a valutare il mese e fare un riporto,per caso esiste qualcosa di già implementato?grazie

ciao
Credo che il metodo più corretto sia questo:

Codice:
TimeZone tz = TimeZone.getTimeZone("Europe/Rome"); // Imposto la zona oraria
GregorianCalendar gc = new GregorianCalendar(tz); // Recupero la data attuale
gc.add(Calendar.DAY_OF_MONTH, 14); // Aggiungo 14 giorni (2 settimane)

// Altri esempi per comprendere meglio
gc.add(Calendar.DAY_OF_MONTH, -14); // Tolgo 14 giorni (2 settimane)
gc.add(Calendar.MONTH, 14); // Aggiungo 14 mesi
gc.add(Calendar.YEAR, -2); // Tolgo 2 anni
Tieni presente che in questo modo la data è calcolata sempre esattamente rispetto all'ora in cui è stata letta dal sistema, e non dalla mezzanotte, per cui quando aggiungi 2 settimane, se ora sono le 23.30 ottieni la data fra due settimane alle 23.30

Non ti serve calcolare i riporti, fa tutto il metodo add. Alla fine leggi normalmente il nuovo giorno, mese, anno.
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 10:20   #5
mercury841
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 409
Quote:
Originariamente inviato da pinok
Credo che il metodo più corretto sia questo:

Codice:
TimeZone tz = TimeZone.getTimeZone("Europe/Rome"); // Imposto la zona oraria
GregorianCalendar gc = new GregorianCalendar(tz); // Recupero la data attuale
gc.add(Calendar.DAY_OF_MONTH, 14); // Aggiungo 14 giorni (2 settimane)

// Altri esempi per comprendere meglio
gc.add(Calendar.DAY_OF_MONTH, -14); // Tolgo 14 giorni (2 settimane)
gc.add(Calendar.MONTH, 14); // Aggiungo 14 mesi
gc.add(Calendar.YEAR, -2); // Tolgo 2 anni
Tieni presente che in questo modo la data è calcolata sempre esattamente rispetto all'ora in cui è stata letta dal sistema, e non dalla mezzanotte, per cui quando aggiungi 2 settimane, se ora sono le 23.30 ottieni la data fra due settimane alle 23.30

Non ti serve calcolare i riporti, fa tutto il metodo add. Alla fine leggi normalmente il nuovo giorno, mese, anno.

1)ma come avevo fatto io prima perchè non andava bene?

2)si può dare un formato al calendario del tipo dd/MM/yyyy?

Ciao e grazie per l'aiuto

Ultima modifica di mercury841 : 27-11-2005 alle 10:24.
mercury841 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 13:04   #6
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da mercury841
1)ma come avevo fatto io prima perchè non andava bene?
Si, andava bene.
Io l'ho sempre usato quel metodo.
Però quello che ti ho detto è più pratico e leggibile, non ti sembra?
Non escludo che poi faccia gli stessi conti passando ai millisecondi, ma dal punto di vista della lettura del codice ti snellisce il tutto.
Quote:
Originariamente inviato da mercury841
2)si può dare un formato al calendario del tipo dd/MM/yyyy?

Ciao e grazie per l'aiuto
Penso di si, non saprei dirti.
Io per fare prima ed essere sicuro che non sorgano problemi di localizzazione o altro, mi sono fatto un metodo stupido, che dato un GregorianCalendar gc ti ritorna una stringa:

return gc.get(Calendar.DAY_OF_MONTH)+"/"+(gc.get(Calendar.MONTH)+1)+"/"+gc.get(Calendar.YEAR);
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 13:21   #7
mercury841
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 409
Si anche io ho fatto così, anche perchè la data la dovrei inserire in un database.

Ciao e grazie per l'aiuto
mercury841 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 16:23   #8
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da mercury841
Si anche io ho fatto così, anche perchè la data la dovrei inserire in un database.

Ciao e grazie per l'aiuto
Per il database, occhio che anch'io la inserivo "formattata", perchè per mysql andava bene ("2005-11-27") ma questo dava problemi di compatibilità nel caso di porting verso altri DB.
Và bene solo se il tipo del record nel DB è string (cioè, memorizzo la stringa, e non mi interessa gestirla come data).
Altrimenti ti conviene pensare di usare un setDate per scriverla, così è il driver JDB che si occupa della conversione nel formato più opportuno.
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 16:57   #9
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Quote:
Originariamente inviato da mercury841
Si anche io ho fatto così, anche perchè la data la dovrei inserire in un database.

Ciao e grazie per l'aiuto
Giungo tardi, è evidente che a te non serve... comunque si poteva anche usare un DateFormat, per esempio:

Codice:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
e poi utilizzare

Codice:
String output = sdf.format(gc.getTime());
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur
Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N
Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN
Mixmar è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 19:17   #10
mercury841
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 409
Quote:
Originariamente inviato da pinok
Per il database, occhio che anch'io la inserivo "formattata", perchè per mysql andava bene ("2005-11-27") ma questo dava problemi di compatibilità nel caso di porting verso altri DB.
Và bene solo se il tipo del record nel DB è string (cioè, memorizzo la stringa, e non mi interessa gestirla come data).
Altrimenti ti conviene pensare di usare un setDate per scriverla, così è il driver JDB che si occupa della conversione nel formato più opportuno.
Ma secondo te per la gestione di una data in un database, cosa mi consiglieresti di usare?Perchè se imposto la data come una stringa, no posso fare dei confronti sulle date. Potrei,invece, pensare di implementare la data come un intero?
Per quanto riguarda setDate, a cosa mi serve?
mercury841 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2005, 20:11   #11
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da mercury841
Ma secondo te per la gestione di una data in un database, cosa mi consiglieresti di usare?Perchè se imposto la data come una stringa, no posso fare dei confronti sulle date. Potrei,invece, pensare di implementare la data come un intero?
Per quanto riguarda setDate, a cosa mi serve?
Se invece di usare Statement per fare le query/update usi PreparedStatement, puoi definire una query parametrizzata del tipo:

Codice:
pstmt = con.prepareStatement("UPDATE MIA_TABELLA SET DATA_COMPLEANNO=? WHERE LOGIN=?");

pstmt.setDate(1, dataCompleanno);
pstmt.setString(2, "pinok");

pstmt.executeUpdate();
Dove dataCompleanno è un oggetto di tipo java.sql.Date

Questo ti permette di evitare anche problemi con apici e doppi apici nella stringa, che altrimenti dovresti preprocessare con degli escape del tipo:

stmt.executeUpdate("INSERT INTO FRASI_TABLE (FRASE) VALUES ('ecco l\'esempio che volevo')");

Ultimamente uso le date in notazione giapponese per facilitare la portabilità e mantenere le funzioni di ordinamento.
In pratica scrivi degli interi come AAAAMMGG, mi raccomando di usare tutte e 8 le cifre (quindi il 2 febbraio del 2005 diventa 20050202).

In questo modo il numero più grande indica data successiva, più piccolo data precedente.
Ti devi definire solo un paio di metodi, che ti passano da notazione giapponese a una stringa (il formato è rigido, te la cavi con dei substring) e viceversa (per giorno e mese devi verificare che se <10 devi premettere uno 0)
pinok è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Osservata esplosione di raggi gamma (GRB...
Sean Duffy (amministratore ad interim de...
Renault lancia la super promo: porte ape...
Il tuo portatile ASUS ROG non funziona c...
Zoom migliora il suo operatore virtuale ...
Traguardo Omoda & Jaecoo in Italia: ...
EHT mostra nuove immagini di come cambia...
Il gioiellino di Fastned: aperti in Belg...
La nuova mini workstation AI di MinisFor...
Formula 1 2026, nuove gare Sprint in cal...
MacBook Pro con display OLED e supporto ...
Poste Italiane: dati di milioni di utent...
Microsoft blocca RaccoonO365, rubate olt...
15 anni dopo Skate 3, il gioco torna sot...
Molte novità per MongoDB: version...
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: 23:13.


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