Calendario

Progetto: Generatore di calendari personalizzati


Calendario.zip     2.3 MB - Calendario Ver. 3.2 (comprende Calendario.ini 09/2005)
Calendario.ini     10 KB - Solo il file di configurazione (aggiornato 09/2005)


Scopo:

Il programma serve a generare calendari per qualsiasi anno (A), in varie lingue (B) e in tre formati diversi (C) e cioè:
(1) Un mese per pagina, con una fotografia nella parte superiore, e il mese nella parte inferiore, nel formato con i giorni incolonnati su righe settimanali
(2) Un mese per pagina, come il precedente, ma nel formato tradizionale, con una riga per giorno disposto su 3 colonne
(3) Un semestre per pagina o meglio 8 mesi disposti sull'intera pagina e cioè:
il primo semestre inizia con Dicembre dell'anno precedente e termina con Luglio,
il secondo semestre riprende con Giugno e termina con Gennaio dell'anno successivo.
In questo modo si ha sempre il controllo anche dei mesi precedente e successivo a quello in corso.

I grossi pulsanti (C) per la scelta del formato, mostrano una miniatura del relativo aspetto, evidenziando con bordo colorato quello selezionato e descrivendo il formato con un commento sotto i tasti.
Nota:   Qualora nessuna delle 12 foto che servono per i formati 1 e 2 sia presente, come è facile che succeda nelle prime prove, prima di aver configurato le immagini, questi formati passano a due mesi per facciata, evidenziando il fatto sia nelle miniature dei formati, sia nella nota il calce ad essi.

Per i formati mensili (1 e 2), è prevista anche la stampa di una copertina con foto a tutta pagina, con o senza titolo sovrapposto nella parte superiore, centrale o inferiore, il tutto attivato cliccando sulla miniatura della copertina (D), che si modifica per permettere di valutare l'interferenza del titolo sull'immagine.
Il formato 3 non prevede copertina, ma può eventualmente avere una immagine di sfondo, preventivamente trattata (resa pallida) per consentire comunque la leggibilità del calendario sovrapposto.

La scelta delle immagini viene eseguita attraverso il pulsante (E), che richiama uno schermo dove, per ogni mese e per la copertina, può essere lacalizzata l'immagine da usare e può eventualmente essere impostata una nota da porre in calce all'immagine stessa.
Le immagini per i mesi devono avere un orientamento orizzontale, mentre per la copertina è più adatta una immagine orientata verticalmente e possibilmente con un rapporto fra la dimensione verticale e orizzontale pari a quello del foglio A4, che è di circa 1.41/1, per ottenere il migliore aspetto e centratura, in quanto verrà ridimensionata automaticamente per occupare il massimo dell'area stampabile, ma rispettando la proporzione originale.
L'mmagine di sfondo del formato 3 non è oggetto di selezione in quanto viene stampata se è presente nella cartella del programma, un file di nome Sfondo.jpg o Sfondo.bmp.

I pulsanti (F) permettono di stampare separatamente la copertina e i due semestri, per facilitare l'utilizzo di entrambe le facciate del foglio anche su stampanti che non gestiscono questa funzione, oppure di stampare il singolo mese, per una più completa libertà di impaginazione o rifacimenti.
Il secondo semestre, mediante l'opzione (G), può essere stampato in ordine normale (mesi da 7 a 12) oppure inverso (da 12 a 7), in modo che, arrivati a Giugno, girando l'intero fascicolo si trovi Luglio. Alcune stampanti hanno una opzione propria per questa funzione.

E' possibile modificare il colore, l'aspetto 3D e il font dei titoli (H). L'impostazione del font ignora però la dimensione del carattere, in quanto questa è calcolata per una corretta centratura.

Il programma genera anche le varie fasi di luna, in alcuni formati selezionati dal tasto ( I ) e mostrati a fianco dello stesso. I formati comprendono il riempimento o meno in giallo delle lune (eccetto la luna nuova), un paio di possibili colori, l'aggiunta o meno dei quarti di luna, o la soppressione totale della stampa delle lune.
Fino alla versione 3.1, la data delle lune era calcolata per il fuso orario dell'Europa centrale (CET).
Dalla versione 3.2, agendo sulla sigla LOC/GMT, a sinistra dell'esempio lune, si commuta il calcolo fra il fuso orario locale del PC e quello di Greenwich.
Il motivo di questo cambiamento è dovuto al fatto di aver notato come alcuni calendari indicassero sporadicamente una fase di luna in anticipo di un giorno rispetto a quello calcolato dal mio programma e indicata anche da altri calendari. Incuriosito, ho attivato la stampa (solo per il formato a pagina singola) anche dell'ora esatta della lunazione e constatato che le lune discordanti erano quelle che cadevano nella prima ora del giorno, secondo l'orario dell'Europa centrale, ma che però a Greenwich è l'ultima ora del giorno precedente. E' evidente che alcuni calendari sono basati sul tempo locale, mentre altri si basano sul GMT.
Ho quindi optato per lasciar decidere all'utente il metodo da adottare, adeguando al tempo stesso il fuso orario locale, a quello del PC che esegue il calcolo e non solo al CET, come in precedenza.
Da notare che l'eventuale discordanza fra calendari circa la fase di luna astronomica, non influisce sulla determinazione della Pasqua, essendo questa basata sulla luna piena ecclesiastica, calcolata secondo il ciclo di Metone (astronomo Ateniese del 5 sec. a.C.), che non tiene conto dell'ora ed è quindi valido per tutto il mondo, anche se può scostarsi leggermente dalla fase di luna astronomica.

Configurazione avanzata (non necessaria per il normale utilizzo):

Pur avendo una interfaccia utente solo in italiano, il programma, come già detto, può generare calendari in varie lingue; più che di lingue sarebbe corretto parlare di Paesi, in quanto le festività sono diverse da un Paese all'altro, anche se con lingua uguale.
Il tutto è controllato dal file Calendario.ini che al momento contiene le definizioni per: Italiano (Italia), Inglese (U.S.A. e United-Kingdom), Spagnolo (España e Rep.Dominicana), Francese (France), e Tedesco (Deutschland).
Attraverso questo file è possibile aggiungere altre lingue o definire altre festività.
Si tratta di un file in formato testo, quindi può essere modificato con qualsiasi editor di testi come il Blocco Note di Windows, ma semplici modifiche possono essere eseguite anche attraverso una funzione richiamabile con il tasto Configurazione Avanzata, presente nello schermo di selezione immagini, con il vantaggio di attivarle immediatamente senza dover chiudere e riavviare il programma.

Il formato del file può sembrare a prima vista complicato, ma sostanzialmente si tratta di gruppi di informazioni identificati da chiavi del tipo <PAESI>, <MESI>, <FESTE> ecc... organizzati in colonne, ciascuna dedicata ad una particolare lingua.

La prima chiave deve necessariamente essere <LINGUE> o <PAESI> (è indifferente) e stabilisce il nome delle lingue o dei paesi supportati, ma al contempo funge da intestazione e incolonnamento per le righe successive (incolonnamento non necessario al programma, ma utile per meglio inquadrare le varie parti).

Alcune chiavi, come per esempio <MESI>, sono suddivise in sottochiavi, del tipo [01], [02], [03] ecc... con evidente riferimento al numero del mese, per il quale viene di seguito fornito l'elenco dei nomi per le varie lingue. Stesso discorso per i nomi dei giorni della settimana (chiave <GIORNI>).

La parte più complessa riguarda la definizione delle festività (chiave <FESTE>) perché al problema delle lingue, si somma quello della diversa composizione delle feste nei vari paesi (questo spiega perché per l'Inglese siano presenti sia UK che USA), con l'ulteriore complicazione delle feste mobili.
Come per gli altri gruppi, anche questo gruppo è composto da sottochiavi, una per ogni festività gestibile, indipendentemente dal fatto che in alcuni paesi tale festività non sia da considerare, indicato da un carattere - (meno) come primo o unico carattere nella colonna di quel paese/lingua.
Queste sottochiavi hanno 3 possibili formati, a seconda che la festività sia a data fissa, a data mobile legata alla Pasqua, o a data mobile legata ad un giorno della settimana. Seguono alcuni esempi:

Feste fisse:
Natale è il 25 Dicembre, la sua sottochiave sarà quindi [25/12], seguita dal nome di questa festività per le varie lingue o paesi, nell'ordine con cui sono state specificate nella prima chiave (<LINGUE> o <PAESI>). Siccome i vari nomi sono separati da spazi, nel caso in cui il nome contenga esso stesso degli spazi, verrà racchiuso fra virgolette ("nome con spazi") che possono essere usate anche quando non necessarie.

Feste mobili legate alla Pasqua:
Il lunedì dell'Angelo o il Venerdì Santo (che è festivo in Germania), sono invece feste mobili legate alla Pasqua, come lo sono la Pentecoste, per la quale alcuni paesi festeggiano anche il Lunedì. La loro sottochiave è allora del tipo [+1], [-2], [+50] o più genericamente +/- il numero di giorni che le separa dalla Pasqua, la cui data è calcolata dal programma e alla quale, per l'assegnazione dei nomi, ci si riferisce con [+0].

Feste legate ad un giorno della settimana:
Prendiamo il Columbus Day: è la festa in ricordo della scoperta dell'America, avvenuta il 12 Ottobre, ma negli Stati Uniti viene festeggiata il secondo lunedì di Ottobre, che presumibilmente è il lunedì più vicino a quella data.
La sottochiave per il Columbus Day è allora [21/10] dove la prima cifra indica il numero ordinale del giorno, la seconda indica il giorno della settimana secondo la convenzione 1=Lunedì, 2=Martedì...7=Domenica, seguita poi dal mese. Per chiarire ulteriormente questa categoria, facciamo anche l'esempio per il Thanksgiving Day che si festeggia l'ultimo Giovedì di Novembre. Ma l'ultimo sarà il quarto o il quinto? Niente paura, per indicare l'ultimo specifichiamo sempre 5, quindi [54/11] (il Giovedì è il quarto giorno della settimana), se poi quel mese di Giovedì ne ha solo 4 il programma lo attribuirà al quarto.

Ulteriore personalizzazione:
Sempre a proposito di feste, potete personalizzare ulteriormente il calendario, inserendo come feste anche eventi locali, come la festa patronale o ricorrenze familiari.
In questi casi, se ponete la descrizione fra parentesi, non verrà segnato come ufficialmente festivo quel giorno, salvo lo sia già per altri motivi.

Installazione

E' utilizzata una procedura standard (SETUP.EXE) che assume di installare nella cartella "C:\Programmi\Calendario\" ma che può essere cambiata a piacere.
Se è presente una precedente copia è consigliabile disinstallarla preventivamnete.

Nella cartella vengono copiati i seguenti file:

Calendario.exe   Il programma
Calendario.htm   La guida in linea
Calendario.gif  L'immagine di riferimento usata nella guida
Calendario.ini   File di configurazione delle lingue e festività
Calendario.bak   Inizialmente assente, creato durante le modifiche al .ini, per permettere il ripristino.
ST5UNST.LOG   Usato da Windows per la disinstallazione
 
Nota:Se qualcuno inserisse nuove lingue o festività per altri paesi nel file di configurazione, farebbe cosa gradita inviandomene una copia per email, in modo che io possa, citando l'autore, aggiornare il pacchetto ed eventualmente aggiungere un link per permettere di scaricare anche il solo file di configurazione aggiornato.
 
Buon lavoro    
  Enzo Arizzi     enzoarizzi.it