Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    147

    lavorare con le date java

    Ciao,ho un problema nel confrontare la differenza in giorni tra due date..Uso questo pezzo di codice per vedere se due date sono uguali

    GregorianCalendar data1 = new GregorianCalendar(2008, 11, 18);
    GregorianCalendar data2 = new GregorianCalendar(2007, 11, 10);
    long milliseconds1 = data1.getTimeInMillis();
    long milliseconds2 = data2.getTimeInMillis();
    long diff = milliseconds2 - milliseconds1;
    long diffSeconds = diff / 1000; //differenza in secondi
    long diffMinutes = diff / (60 * 1000); //differenza in minuti
    long diffHours = diff / (60 * 60 * 1000); //differenza in orelong diffDays = diff / (24 * 60 * 60 * 1000); //differenza in giorni

    Il problema e che la differenza in gironi mi da sempre 0,anche se controllo prima le date e uno mi segna 18 febbraio e l'altra 19 febbraio,come posso fare?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Stai facendo la divisione intera... A meno che la differenza (al millisecondo) non sia maggiore di 24 ore otterrai sempre 0.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    A me sembra "corretto" (l'ho messo tra virgolette perchè fai la differenza fra la data più vecchia e quella più recente, magari andava fatto il contrario):

    Questo il codice (copia e incolla del tuo):

    codice:
    import java.util.*;
    
    public class DifferenzaGiorni {
       public static void main(String[] args) {
          GregorianCalendar data1 = new GregorianCalendar(2008, 11, 18);
          GregorianCalendar data2 = new GregorianCalendar(2007, 11, 10);
          long milliseconds1 = data1.getTimeInMillis();
          long milliseconds2 = data2.getTimeInMillis();
          long diff = milliseconds2 - milliseconds1;
          long diffSeconds = diff / 1000; //differenza in secondi
          long diffMinutes = diff / (60 * 1000); //differenza in minuti
          long diffHours = diff / (60 * 60 * 1000); //differenza in ore
          long diffDays = diff / (24 * 60 * 60 * 1000);
    
          System.out.println( diffSeconds );
          System.out.println( diffMinutes );
          System.out.println( diffHours );
          System.out.println( diffDays );
       }
    }

    Questo è l'output:

    codice:
    -32313600
    -538560
    -8976
    -374

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.