PDA

View Full Version : [Java/C#]Settare colore giorni festivi


RaouL_BennetH
18-04-2007, 10:01
Ciao a tutti :)

Dovrei risolvere questo problema:

Ho una griglia che crea tante righe in base al numero di giorni presenti in un mese, per esempio se il mese è aprile avrò 30 righe, se febbraio ne avrò 28 etc..

Adesso, dovrei in qualche maniera evidenziare i giorni di festa con un colore diverso. Per il sabato e la domenica non c'è problema.... c'è invece per i giorni di festa del nostro calendario, come il primo maggio ad esempio, il 25 aprile, natale, capodanno etc..

io stavo facendo una cosa del genere:


//myDate è un oggetto di tipo date, sia in java che in C#
//myGrid è una Jtable in Java e un DataGridView in C#
private int days;

public int DayCount(myDate)
{
days = //ottengo il numero di giorni presenti dal mese selezionato
return days;
}

public void FormatMonthlyGrid(myDate, myGrid)
{
for(int counter = 1; counter <= days; counter++)
{
DateTime dt = new DateTime(myDate.Year, myDate.Month, counter);
//codice per il colore dei sabati e delle domeniche..funge senza prob..

//adesso...ho fatto questa cosa orrenda:
if(dt.Month == 4 && dt.Day == 25)
{
myGrid.Rows[25].BackColor = rosso;
}
if(dt.Month == 5 && dt.Day == 1)
{
myGrid.Rows[1].BackColor = rosso;
}

//se considerate quante feste ci sono nel nostro calendario... avrete idea di quanti 'if' ho scritto :(



Mi dareste dei suggerimenti?

Grazie mille.

RaouL.

PGI-Bis
18-04-2007, 12:49
Forse ti conviene usare un file di configurazione e usarlo per inizializzare un oggetto che abbia un unico e semplice metodo "public boolean isHoliday(Calendar date)".

Nel file di configurazione puoi scrivere le festitività nel modo che ti sembri più rapido, inizializzi l'oggetto trasferendo questi dati in una mappa e riduci il metodo isHoliday ad una ricerca di corrispondenza.

thebol
18-04-2007, 13:27
per le "vacanze italiane" guarda qua

http://www.mozilla.org/projects/calendar/holidays.html