Visualizzazione dei risultati da 1 a 10 su 24

Hybrid View

  1. #1
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    No, è vero... ha ragione luca200. Il problema è l'unità considerata, ovvero il Periodo (non avevo letto l'ultima frase del tuo primo post)

    Aggiungendo 9 mesi alla data del 30/04/2014 arrivo al 30/01/2015 (mancano 2 giorni al 01/02/2015)
    Aggiungendo sempre 9 mesi alla data del 01/05/2014 arrivo al 01/02/2015. Perchè sto valutando in mesi e non in giorni.

    Perchè il tempo viene espresso in periodi e non in giorni.

    Ok, stavo perdendo di vista l'unità temporale.

    E' sempre la solita questione... se sono alla fine di un mese di 30 giorni e aggiungo un mese, devo arrivare alla fine del mese dopo (31) o al 30 del mese dopo?


    Ciao.
    Ultima modifica di LeleFT; 03-09-2014 a 12:22
    "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

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    No, è vero... ha ragione luca200. Il problema è l'unità considerata, ovvero il Periodo (non avevo letto l'ultima frase del tuo primo post)

    Aggiungendo 9 mesi alla data del 30/04/2014 arrivo al 30/01/2015 (mancano 2 giorni al 01/02/2015)
    Aggiungendo sempre 9 mesi alla data del 01/05/2014 arrivo al 01/02/2015. Perchè sto valutando in mesi e non in giorni.

    Perchè il tempo viene espresso in periodi e non in giorni.

    Ok, stavo perdendo di vista l'unità temporale.



    Ciao.
    ok, anche se fosse così non si spiega perché coi mesi di 31 giorni andando indietro di un giorno non ne portino 2 di differenza (che poi è il reale problema).
    mi spiego.

    1 gennaio 2014 1 febbraio 2014 mi conti un mese (ok).
    31 dicembre 2013 1 febbraio 2014 mi conti un mese e 1 giorno (ok)

    maaaa se prendi il mese di 30, ne metti 2.
    In ogni caso, un bacarazzo da qualche parte è seminato

    edit:

    partiamo dal 30 novembre e aggiungo 2 mesi, siamo al 30 di gennaio, 31 gennaio 1 giorno e 1 febbraio non incluso, quindi 2 mesi e 1 giorno, non mi torna sempre il secondo giorno

    a meno che non si considerino di default tutti i mesi di 30, quindi essendoci il 31 di mezzo debba mettere un giorno in più
    Ultima modifica di valia; 03-09-2014 a 12:31
    RTFM Read That F*** Manual!!!

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Quote Originariamente inviata da valia Visualizza il messaggio
    ok, anche se fosse così non si spiega perché coi mesi di 31 giorni andando indietro di un giorno non ne portino 2 di differenza (che poi è il reale problema).
    mi spiego.

    1 gennaio 2014 1 febbraio 2014 mi conti un mese (ok).
    31 dicembre 2013 1 febbraio 2014 mi conti un mese e 1 giorno (ok)

    maaaa se prendi il mese di 30, ne metti 2.
    In ogni caso, un bacarazzo da qualche parte è seminato

    edit:

    partiamo dal 30 novembre e aggiungo 2 mesi, siamo al 30 di gennaio, 31 gennaio 1 giorno e 1 febbraio non incluso, quindi 2 mesi e 1 giorno, non mi torna sempre il secondo giorno

    Il problema è che si sta ragionando a periodi e non a giorni: fai questa prova:


    codice:
          LocalDate gennaio = LocalDate.of(2014, 1, 31);
          LocalDate marzo = LocalDate.of(2014, 3, 31);
    
          // Aggiungo un mese ad entrambe le date
          LocalDate d1 = gennaio.plus(1, ChronoUnit.valueOf("MONTHS"));
          LocalDate d2 = marzo.plus(1, ChronoUnit.valueOf("MONTHS"));
          System.out.format("%s + 1 MESE -> %s%n", gennaio, d1);
          System.out.format("%s + 1 MESE -> %s%n", marzo, d2);

    Ecco il risultato (come atteso):


    codice:
    2014-01-31 + 1 MESE -> 2014-02-28
    2014-03-31 + 1 MESE -> 2014-04-30

    Il risultato è corretto, ma nel primo caso ha aggiunto 28 giorni (è andato dalla fine del mese di gennaio alla fine del mese di febbraio), nel secondo ne ha aggiunti 30 (è andato dalla fine di marzo alla fine di aprile... eppure l'operazione è la stessa: ho aggiunto 1 mese = sto ragionando a mesi (periodi) non a giorni. I mesi hanno peso (in giorni) diverso a seconda del periodo.

    Di conseguenza: dal 01/05/2014 al 01/02/2015 ci sono 9 mesi esatti (dal primo giorno di un mese al primo giorno di un altro mese), mentre dal 30/04/2014 al 01/02/2015 ci sono 9 mesi e 2 giorni... perchè aggiungendo 9 mesi cado al 30 gennaio 2015 (per l'annosa questione che aggiungendo 1 mese alla fine di un mese di 30 giorni cado al 30 del mese dopo e non al 31) e mi rimangono altri 2 giorni per arrivare al 1 febbraio.


    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

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.