Visualizzazione dei risultati da 1 a 4 su 4

Discussione: JCalendar bug

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    50

    JCalendar bug

    Cari,
    di seguito il mio problema nel'utilizzo di JCalendar:

    Se ad esempio dal 30 Marzo seleziono il mese di Febbraio (cambio solo la selezione del JMonthChooser component)
    il componente DayChooser perde il giorno selezionato (poichè il 30 Febbraio nella realtà non esiste) e il getDate() su JCalendar restituisce 2 Marzo. Da quel momento in poi ogni selezione sul DAyChooser agisce sul mese di marzo, mentre il MonthChooser resta fermo a febbraio.

    Al contrario se dal 31 MArzo, seleziono il mese di Aprile, abbiamo 30 Aprile (poichè 31 aprile nella realtà non esiste) ed ogni selezione successiva del giorno, riguarda sempre il mese di Aprile.

    Pare che il problema sia solo per la gestione del mese di Febbraio.
    Qualcuno ha mai notato e quindi trovato una soluzione al problema descritto?

    Grazie
    FraPal

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Segnalalo allo sviluppatore della libreria...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da Andrea1979
    Segnalalo allo sviluppatore della libreria...
    C'è anche un forum dedicato alla segnalazione dei Bug sul sito della libreria... certo, il numero di interventi che hanno fatto non dà molte speranze...


    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

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JCalendar bug

    Originariamente inviato da frapal
    Se ad esempio dal 30 Marzo seleziono il mese di Febbraio (cambio solo la selezione del JMonthChooser component)
    il componente DayChooser perde il giorno selezionato (poichè il 30 Febbraio nella realtà non esiste) e il getDate() su JCalendar restituisce 2 Marzo. Da quel momento in poi ogni selezione sul DAyChooser agisce sul mese di marzo, mentre il MonthChooser resta fermo a febbraio.

    Al contrario se dal 31 MArzo, seleziono il mese di Aprile, abbiamo 30 Aprile (poichè 31 aprile nella realtà non esiste) ed ogni selezione successiva del giorno, riguarda sempre il mese di Aprile.

    Pare che il problema sia solo per la gestione del mese di Febbraio.
    Qualcuno ha mai notato e quindi trovato una soluzione al problema descritto?
    Non è tanto un "baco" di JCalendar. Il fatto del 2 Marzo non è dovuto ad un errore di JCalendar.
    Invece è dovuto alla questione lenient/non-lenient del java.util.Calendar.
    Si veda il setLenient() di Calendar.

    Quando un Calendar funziona in modo "lenient", accetta di buon grado date che non esistono e cerca di "interpretarle" come meglio può, ad esempio con un ipotetico Calendar che ha 30 Febbraio 2010 siccome l'ultimo è il 28 il Calendar lo tratta come "2 giorni dopo il 28" cioè appunto il 2 Marzo.

    Se il JCalendar lo imposti con:

    tuoJCalendar.getCalendar().setLenient(false);

    se c'è selezionato 30 Marzo e con il month-chooser si sceglie Febbraio, non c'è alcun giorno selezionato a video (il 30 non c'è appunto) ma il getDate() di JCalendar lancia una eccezione, proprio perché è stato impostato come non-lenient. Se è invece lenient (il default) si ha 2 Marzo.

    Prima di dare più o meno la colpa ad una libreria, vediamo sempre di capire la questione più a fondo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.