none
Gestione eventi RRS feed

  • Domanda

  • Ciao a tutti,

    volevo una vostra idea sulla gestione diciamo di eventi tra una data e l'altra.

    Il problema è il seguente :

    Ho un evento che avviene ogni giorno alle 14 (Evento A) e un evento che avviene solo alla domenica alle 14 (Evento B).

    A questo punto vorrei una lista di tutti gli eventi che intervengono tra due datetime. Come fareste voi?

    Grazie


    Se questo post risponde alla tua domanda ricorda di contrassegnarlo come risposta. In questo modo aiuterai altri utenti che hanno lo stesso problema a trovare la risposta più velocemente. Grazie.

    venerdì 11 aprile 2014 13:37

Risposte

  • Grazie a tutti per la risposta.

    In realtà ho risolto così:

    public class EventoPianificato
        {
            public int[] GiorniDellaSettimana { get; set; }
            public TimeSpan Ora { get; set; }
            public TipoEvento TipoEvento { get; set; }
    
        }

    Questo per definire l'evento

    Quindi :

    List<EventoSistema> eventi = new List<EventoSistema>();
    
                var dataAnalizzata = daData;
                while (dataAnalizzata < toData)
                {
                    foreach (var eventoPianificato in listaEventiPianificati)
                    {
                        if (eventoPianificato.GiorniDellaSettimana.Contains( (int)dataAnalizzata.DayOfWeek))
                        {
                            eventi.Add(new EventoDiSistemaNonSchedulatoNelDB()
                            {
                                ...
                            });
                        }
                    }
                    dataAnalizzata = dataAnalizzata.AddDays(1);
                }
                return eventi;

    Grazie ancora a tutti


    Se questo post risponde alla tua domanda ricorda di contrassegnarlo come risposta. In questo modo aiuterai altri utenti che hanno lo stesso problema a trovare la risposta più velocemente. Grazie.

    • Contrassegnato come risposta bab76 lunedì 14 aprile 2014 11:00
    lunedì 14 aprile 2014 11:00

Tutte le risposte

  • Ciao bab76,

    Ciao a tutti,

    volevo una vostra idea sulla gestione diciamo di eventi tra una data e l'altra.

    Il problema è il seguente :

    Ho un evento che avviene ogni giorno alle 14 (Evento A) e un evento che avviene solo alla domenica alle 14 (Evento B).

    A questo punto vorrei una lista di tutti gli eventi che intervengono tra due datetime. Come fareste voi?

    Grazie


    Se questo post risponde alla tua domanda ricorda di contrassegnarlo come risposta. In questo modo aiuterai altri utenti che hanno lo stesso problema a trovare la risposta più velocemente. Grazie.

    se sai già a priori quali eventi si verificano , quello che puoi fare e creare e aggiornare un file di log  ad ogni evento che viene lanciato , nell'evento prima di andare a scrivere nel file fai la verifica se e compreso tra le due datetime , se compreso esegui la scrittura nel file specificando quale evento e stato lanciato oquello che prevedi di salvare .

    Ciao.


    venerdì 11 aprile 2014 13:47
  • crei una lista vuota a priori di un oggetto "Evento" che avrai definito tu. Ogni oggetto "Evento" avrà dentro una proprietà DateTime che indica appunto quando è stato "avvenuto", si presume che venga ppunto istanziato quando "avviene" e inserito nella lista. Quando cerchi un range di eventi che sono "avvenuti" in un intervallo di una data specifica basta che cicli la tua lista e se il valore della proprietà dateTime è compreso nell'l'intervallo allora stai vedendo quel tipo di oggetto "Evento" che ti interessa e ci fai le tue "cose". Eventi che non sono presenti in lista ovviamente non sono ancora "avvenuti" :), quindi non esistono.

     Poi ogni volta che un evento si verifica puoi salvarlo in un file così da nn perderlo quando il programma si chiude, e al suo riavvio carichi tutti gli eventi nella lista che ti ho detto :)
    • Modificato gabry90 venerdì 11 aprile 2014 13:54
    venerdì 11 aprile 2014 13:50
  • Grazie a tutti per la risposta.

    In realtà ho risolto così:

    public class EventoPianificato
        {
            public int[] GiorniDellaSettimana { get; set; }
            public TimeSpan Ora { get; set; }
            public TipoEvento TipoEvento { get; set; }
    
        }

    Questo per definire l'evento

    Quindi :

    List<EventoSistema> eventi = new List<EventoSistema>();
    
                var dataAnalizzata = daData;
                while (dataAnalizzata < toData)
                {
                    foreach (var eventoPianificato in listaEventiPianificati)
                    {
                        if (eventoPianificato.GiorniDellaSettimana.Contains( (int)dataAnalizzata.DayOfWeek))
                        {
                            eventi.Add(new EventoDiSistemaNonSchedulatoNelDB()
                            {
                                ...
                            });
                        }
                    }
                    dataAnalizzata = dataAnalizzata.AddDays(1);
                }
                return eventi;

    Grazie ancora a tutti


    Se questo post risponde alla tua domanda ricorda di contrassegnarlo come risposta. In questo modo aiuterai altri utenti che hanno lo stesso problema a trovare la risposta più velocemente. Grazie.

    • Contrassegnato come risposta bab76 lunedì 14 aprile 2014 11:00
    lunedì 14 aprile 2014 11:00
  • bhe, è piu o meno quello che ti ho suggerito, cmq meglio :D
    venerdì 30 maggio 2014 07:11