Come creare una Rubrica Telefonica in C# – Lezione 12 – Calcolare il segno zodiacale di un contatto

Come creare una Rubrica Telefonica in C# - Lezione 12 - Calcolare il segno zodiacale di un contatto

Calcolare il segno zodiacale di un contatto in C#: Dodicesima lezione del corso di programmazione in C#, nel quale andremo a creare una funzione che partendo dalla data di nascita di un contatto ci mostri il suo segno zodiacale.

In questa lezione, useremo il calcolo del segno zodiacale per approfondire il funzionamento dell’istruzione if e verificare più condizioni contemporaneamente.

Istruzione IF per calcolare il segno zodiacale

string segno_zodiacale = "";
// 01/01/1900
int giorno_nascita = Convert.ToInt32(datanascita.Substring(0, 2));
int mese_nascita = Convert.ToInt32(datanascita.Substring(3, 2));

Prima di iniziare dobbiamo creare 3 variabili, la prima nella quale salvare il nome del segno, le altre rispettivamente per estrarre il giorno ed il mese dalla stringa che contiene la data di nascita.

Dovendo eseguire delle operazioni aritmetiche sulle date, andremo a convertire la stringa in intero usando l’istruzione Convert.ToInt32(stringa_da_convertire);

if ((giorno_nascita >= 21 && mese_nascita == 3) || (giorno_nascita <= 19 && mese_nascita == 4))
        { segno_zodiacale = "Ariete"; }
        else if ((giorno_nascita >= 20 && mese_nascita == 4) || (giorno_nascita <= 20 && mese_nascita == 5))
        { segno_zodiacale = "Toro"; }
        else if ((giorno_nascita >= 21 && mese_nascita == 5) || (giorno_nascita <= 20 && mese_nascita == 6))
        { segno_zodiacale = "Gemelli"; }
        else if ((giorno_nascita >= 21 && mese_nascita == 6) || (giorno_nascita <= 22 && mese_nascita == 7))
        { segno_zodiacale = "Cancro"; }
        else if ((giorno_nascita >= 23 && mese_nascita == 7) || (giorno_nascita <= 23 && mese_nascita == 8))
        { segno_zodiacale = "Leone"; }
        else if ((giorno_nascita >= 24 && mese_nascita == 8) || (giorno_nascita <= 22 && mese_nascita == 9))
        { segno_zodiacale = "Vergine"; }
        else if ((giorno_nascita >= 23 && mese_nascita == 9) || (giorno_nascita <= 22 && mese_nascita == 10))
        { segno_zodiacale = "Bilancia"; }
        else if ((giorno_nascita >= 23 && mese_nascita == 10) || (giorno_nascita <= 21 && mese_nascita == 11))
        { segno_zodiacale = "Scorpione"; }
        else if ((giorno_nascita >= 22 && mese_nascita == 11) || (giorno_nascita <= 21 && mese_nascita == 12))
        { segno_zodiacale = "Sagittario"; }
        else if ((giorno_nascita >= 22 && mese_nascita == 12) || (giorno_nascita <= 19 && mese_nascita == 1))
        { segno_zodiacale = "Capricorno"; }
        else if ((giorno_nascita >= 20 && mese_nascita == 1) || (giorno_nascita <= 19 && mese_nascita == 2))
        { segno_zodiacale = "Acquario"; }
        else if ((giorno_nascita >= 20 && mese_nascita == 2) || (giorno_nascita <= 20 && mese_nascita == 3))
        { segno_zodiacale = "Pesci"; }
        else { segno_zodiacale = "Non trovato"; }
        return segno_zodiacale;

Dopo aver dichiarato le variabili necessarie per il corretto funzionamento dell’istruzione condizionale possiamo iniziare ad analizzare le informazioni per poter quindi restituire il segno zodiacale.

Quella sopra è l’istruzione completa, nel caso specifico prendiamo in esame solo la prima verifica:

if ((giorno_nascita >= 21 && mese_nascita == 3) || (giorno_nascita <= 19 && mese_nascita == 4))
        { segno_zodiacale = "Ariete"; }

Abbiamo l’if con la parentesi tonda con all’interno la condizione da verificare.

In questo caso però la condizione contiene 4 condizioni, raggruppate in 2 verifiche:

(giorno_nascita >= 21 && mese_nascita == 3) || (giorno_nascita <= 19 && mese_nascita == 4)

All’interno delle prime parentesi abbiamo 2 condizioni, che essendo raggruppate devono essere verificate insieme, poi abbiamo un OR e altre due condizioni da verificare.

In questo esempio quindi la condizione si legge:

SE giorno_nascita è maggiore o uguale a 21 e mese_nascita è uguale a 3 OPPURE se giorno_nascita è minore di 19 e mese_nascita è uguale a 4.

String.Format per formattare le stringhe

string messaggio_segnozodiacale = String.Format("Il segno zodiacale di {0} {1} è {2}", nomecontatto, cognomecontatto, segnozodiacale);

In questo esempio , abbiamo creato una nuova stringa chiamata messaggio_segnozodiacale, che servirà a mostrare il messaggio con il nome del contatto e il suo segno zodiacale.

String.Format ci permette di usare dei segnaposto {0}, {1} e {2} all’interno di una stringa, che poi possiamo sostituire con il contenuto di una variabile inserita dopo la stringa.

Calcolare il segno zodiacale di un contatto in C# – La video lezione completa

Se hai perso le lezioni precedenti clicca qui per partire dalla prima lezione.

author avatar
Claudio Masci
Sono innanzitutto un appassionato di informatica e tecnologia in generale. Lavoro in ambito informatico da circa 16 anni, spaziando in diversi campi, andando dalla programmazione web, allo sviluppo di software, dalla grafica alla modellazione 3d ed al video editing, ho sempre voluto approfondire ogni aspetto e questo mi ha permesso di lavorare in diversi ambiti informatici.