PDA

View Full Version : [c#] Calcolo Data


galefabio
17-05-2010, 18:29
Salve, vi illustro il mio problema, allora:

io ho un database che contiene delle stampanti, e queste stampanti devono essere rifornite di carta, questo va in base al consumo medio, ma questo non è un problema il calcolo di esso, vorrei dei consigli sul calcolo della data.
Ovvero, una volta che sono fra quanti giorni LAVORATIVI deve essere ricaricata, devo tirare fuori la data. Esempio:

Oggi 12/01 martedi, tra 5 giorni devo andare a ricaricare in teoria se non tolgo i giorni lavorativi dovrei andare a ricaricarla domenica, ma sabato e domenica sono festivi, quindi c'è in cui elimino sia i sabati che le domenica e gli altri giorni festivi dell'anno, ovvero natale e altri???

in modo che mi venga come somma un giorno che sia feriale??

Grazie in anticipo, fabio

Kralizek
17-05-2010, 19:16
di getto farei così:

public DateTime CalcolaData(DateTime inizio, TimeSpan intervallo)
{
DateTime date = inizio + intervallo;

if (!IsWorkDay(date))
date = CalcolaData(date, new TimeSpan(1, 0, 0, 0));

return date;
}

public bool IsWorkDay (DateTime date)
{
if (date.DayOfWeek == DayOfWeek.Sunday || date.DayOfWeek == DayOfWeek.Saturday)
return false;

// altri controlli

return true;
}

la funzione IsWorkDay(DateTime) può ovviamente essere migliorata ;)

!k-0t1c!
18-05-2010, 09:13
Il maggior fastidio saranno cose con conteggi strani tipo carnevale (se è festivo) e pasqua.
Per il resto quel che ti ha suggerito Kralizek va bene.
Occhio alla ricorsione, se hai un migliaio di giorni festivi di seguito potresti avere dei problemi :D

gugoXX
18-05-2010, 09:50
Il maggior fastidio saranno cose con conteggi strani tipo carnevale (se è festivo) e pasqua.
Per il resto quel che ti ha suggerito Kralizek va bene.
Occhio alla ricorsione, se hai un migliaio di giorni festivi di seguito potresti avere dei problemi :D

Pasqua no. Non da mai problemi.
Pasqua e' sempre di Domenica

(Scherzo eh... :) )

astorcas
18-05-2010, 10:40
Pasqua no. Non da mai problemi.
Pasqua e' sempre di Domenica

(Scherzo eh... :) )

dai c'è la pasquetta che è di lunedì pignolo :D

In ogni caso per quello c'è l'algoritmo di Gauss che è abbastanza banale.