Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - aiuto su programma C#
Forum - C# / VB.NET - aiuto su programma C#

Avatar
threader (Normal User)
Newbie


Messaggi: 2
Iscritto: 11/02/2008

Segnala al moderatore
Postato alle 10:53
Lunedì, 11/02/2008
Ciao ragazzi...

Sto scercando di creare un programma che cicli all'infinito un turno lavorativo di 6 giorni avanti nel tempo.
Mi spiego meglio.
Il turno e' cosi composto:

mattina-pomeriggio-notte-riposo-pomeriggio-mattina

Ho inserito un monthCalendar nella form ed una textBox.Ora io vorrei che cliccando su un giorno qualsiasi del calendario la textBox mi ritorni il turno da fare in quel giorno (ad esempio 11 Feb 2009 - mattina).

Qualche amico online mi ha consigliato di scrivere questo codice:

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
        {  
            

            string[] Turni = new string[] { "mattina","pomeriggio","notte","riposo","pomeriggio","mattina" };
            for (int i = 1; i < 6; i++)
            {
                this.textBox2.Text =
                    monthCalendar1.SelectionRange.End.Date.ToShortDateString() + "    " + Turni;

            }
            string[] Giorni = new string[] {???????????? };
            for (int j = 1; j < 8; j++)
            {
              
            }
        }


nell'array Giorni non so cosa mettere, perche' secondo questo mio amico dovrei creare un array di giorni dalla data di partenza cioe' 01/01/2007 fino al giorno cliccato....boh??


Qualcuno puo' darmi una mano??
Sono disponibile per ogni chiarimento.
Grazie
Forte 'sto Forum!!

Ultima modifica effettuata da threader il 11/02/2008 alle 10:57
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:48
Lunedì, 11/02/2008
Stabilito il giorno in cui inizi il turno, prima devi ottenere la data con MonthCalendar, e non mi sembra un problema. Poi dovresti calcolare il numero totale di giorni tra le due date, quindi ottenere il resto della divisione TotaleGiorni / 6. Questo resto sarà l'indice dell'array Turni da cui estrapolare il valore. Questo metodo non tiene conto dei giorni festivi.
Altra possibilità (variante di quella suggerita dal tuo amico). Controlli ogni giorno dall'inizio alla data specificata e, nel caso sia un giorno feriale, aumenti una variabile contatore (ad esempio N) di uno. Alla fine ottieni il resto della divisione N / 6 e fai come sopra. Questo metodo tiene conto dei giorni festivi.
Io programmo in vb.net, quindi preferirei non tentare di scrivere un codice c#. Se proprio non ci riesci, userò un convertitore.

PM Quote
Avatar
threader (Normal User)
Newbie


Messaggi: 2
Iscritto: 11/02/2008

Segnala al moderatore
Postato alle 12:16
Mercoledì, 13/02/2008
Grazie per adesso, ciao....

PM Quote