|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2009
Messaggi: 129
|
[JAVA] ... calendario ???
Salve
Ho il seguente problema: Per un'applicazione web ho bisogno di un menu a tendina contenente l'elenco degli anni.Scelto l'anno viene visualizzato il menu a tendina relativo ai mesi. Scelto il mese deve essere visualizzata un'ultimo menu a tendina contenente intervalli dati dalla suddivisione del mese scelto in settimane. Scelto l'intervallo di giorni,viene visualizzata una tabella che ha per colonne i singoli giorni dell'intervallo: Anno: .....- 2008 - 2009 - 2010 - .... Mese: ....-Settembre - Ottobre - Novembre - .... Intervalli settimanali: 1-4 , 5-11 , 12-18 , 19-25 , 26-31 (N.B.: gli intervalli settimanli sono relativi a ottobre 2009,è solo un esempio per farvi capire) 1.Sono capace di recuperare la lista degli anni e ovviamente dei mesi,ma non riesco a capire come fare a recuperare la lista dei giorni di ogni mese(febbraio non è sempre di 28,per questo devo farlo dinamicamente). 2.Recuperata la lista dei giorni come fare a suddividerli in intervalli settimanali? E per recuperare il giorno relativo al numero?? (esempio: giorno 11 ottobre --> Lunedi ) Sto dando un'occhiata alla classe GregorianCalendar,ma mi sembra un pò un casino.Mi domandavo se c'era qualcosa di gia bello e fatto. P.s.: Di calendari a pop-up ne ho trovati migliaia,ma il problema è che, per rispettare i requisiti dell'applicazione,devo utilizzare menu a tendina e tabelle,non un popup per la selezione del giorno. Saluti |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Calendar ha una brutta fama ma è una classe deliziosa.
Dato un calendar, getActualMaximum restituisce il massimo valore di un certo campo. Così se io dico: Calendar c = Calendar.getInstance(2010, 1, 24); int massimo = c.getActualMaximum(Calendar.DAY_OF_MONTH); "massimo" è 28 ma se dico: Calendar c = Calendar.getInstance(2008, 1, 24); int massimo = c.getActualMaximum(Calendar.DAY_OF_MONTH); "massimo" è 28. Dunque con getMinimum (che è sempre 1) e getMaximum ottieni il range dei giorni. Quanto ai giorni della settimana c'è DAY_OF_WEEK. Che giorno è oggi? int giorno = c.get(Calendar.DAY_OF_WEEK); domenica vale 1, sabato 7, per il confronto ci sono le costanti in Calendar. Il nome del giorno lo ottieni con getDisplayName: Calendar c = new Calendar(2010, 1, 24); String giorno = c.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault()); giorno vale "mercoledì" Per quanto riguarda la suddivisione in settimane se hai l'indice del giorno nella settimana, il numero totale di giorni del mese, sai che domenica vale 1... insomma, è praticamente già fatto.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2009
Messaggi: 129
|
perfetto,grazie per la risposta,ci sono riuscito,almeno da consolle....ora devo smanettare con JSF,ma tanto il codice quello è
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:02.