/// /////////////////////////////////////////////////////////////////
        private void CFormParametresEntreeAgendaCyclique_Load(object sender, System.EventArgs e)
        {
            CPlanificationTache planif = m_entree.PlanificationCyclique;

            if (planif == null)
            {
                CPlanificationTacheHebdomadaire ph = new CPlanificationTacheHebdomadaire();
                planif = ph;

                ph.JoursExecution = CUtilDate.GetJourBinaireFor(m_entree.DateDebut.DayOfWeek);
                ph.Heure          = m_entree.DateDebut.Hour;
                ph.EcartSemaine   = 1;
            }
            m_panelPlanif.Init(planif);
            m_dateDebut.Value = m_entree.DateDebut;
            m_dateFin.Value   = m_entree.DateFinCyclique;
            TimeSpan sp = m_entree.DateFin - m_entree.DateDebut;

            m_chkSansHoraire.Checked = m_entree.SansHoraire;
            if (!m_entree.SansHoraire)
            {
                m_nDureeJours.Value = (int)sp.TotalDays;
            }
            else
            {
                m_nDureeJours.Value = (int)(sp.TotalDays + .999999999);
            }

            m_nDureeHeures.Value             = (int)sp.Hours;
            m_nDureeMinutes.Value            = (int)sp.Minutes;
            m_wndListeExclusions.ListeSource = m_entree.Desactivations;
        }
示例#2
0
 //Retourne toutes les clés concernant une date donnée dans l'ordre de priorité
 public static string[] GetAllKeysConcernant(DateTime dt)
 {
     return(new string[]
     {
         CCalendrier_JourParticulier.GetKeyForJourMoisAnnee(dt.Day, dt.Month, dt.Year),
         CCalendrier_JourParticulier.GetKeyForJourMois(dt.Day, dt.Month),
         CCalendrier_JourParticulier.GetKeyForJourDuMois(dt.Day),
         CCalendrier_JourParticulier.GetKeyJoursDeSemaine(CUtilDate.GetJourBinaireFor(dt.DayOfWeek))
     });
 }
        /// ///////////////////////////////////////////
        protected CDateTimeEx GetMyNextOccurence(DateTime dtDateExecutionPrecedente, bool bPremiereExecution, bool bSuperieur)
        {
            DateTime dtVal = dtDateExecutionPrecedente;

            if (JoursExecution == JoursBinaires.Aucun)
            {
                JoursExecution = JoursBinaires.Lundi;
            }
            JoursBinaires jour = CUtilDate.GetJourBinaireFor(dtVal.DayOfWeek);
            int           nInc = 0;

            if (bPremiereExecution)
            {
                while (((jour & JoursExecution) != jour) && nInc < 7)
                {
                    nInc++;
                    dtVal = dtVal.AddDays(1);
                    jour  = CUtilDate.GetJourBinaireFor(dtVal.DayOfWeek);
                }
            }
            else
            {
                if (bSuperieur)
                {
                    if (dtVal.DayOfWeek == DayOfWeek.Sunday)
                    {
                        dtVal = dtVal.AddDays(7 * (m_nEcartSemaine - 1) + 1);
                    }
                    else
                    {
                        dtVal = dtVal.AddDays(1);
                    }
                }
                jour = CUtilDate.GetJourBinaireFor(dtVal.DayOfWeek);
                //Regarde les jours suivants de la même semaine
                while ((jour & JoursExecution) != jour && dtVal.DayOfWeek != DayOfWeek.Sunday)
                {
                    dtVal = dtVal.AddDays(1);
                    jour  = CUtilDate.GetJourBinaireFor(dtVal.DayOfWeek);
                }
                if ((jour & JoursExecution) != jour)
                {
                    //Il faut passer à la semaine d'après
                    return(GetMyNextOccurence(CUtilDate.LundiDeSemaine(dtDateExecutionPrecedente.AddDays(7 * m_nEcartSemaine)), false, false));
                }
            }
            int nHeure  = (int)Heure;
            int nMinute = (int)Math.Round((Heure - nHeure) * 60, 0);

            dtVal = new DateTime(dtVal.Year, dtVal.Month, dtVal.Day, nHeure, nMinute, 0);
            return(new CDateTimeEx(dtVal));
        }
        /// ///////////////////////////////////////////
        protected override CDateTimeEx GetMyNextOccurence(DateTime dtDateExecutionPrecedente, bool bPremiereExecution)
        {
            if (JoursExecution == JoursBinaires.Aucun)
            {
                return(null);
            }
            DateTime dtVal  = dtDateExecutionPrecedente;
            double   fHeure = ((double)dtVal.Hour) + ((double)dtVal.Minute) / 60;

            if (fHeure < Heure)
            {
                dtVal = dtVal.Date.AddHours(Heure);
            }
            else
            {
                switch (m_nUnite)
                {
                case EUniteTemps.Hour:
                    dtVal = dtVal.AddHours(m_nEcart);
                    break;

                case EUniteTemps.Minute:
                    dtVal = dtVal.AddMinutes(m_nEcart);
                    break;
                }
            }
            fHeure = ((double)dtVal.Hour) + ((double)dtVal.Minute) / 60;
            if (fHeure > HeureFin || fHeure < Heure)
            {
                dtVal = dtDateExecutionPrecedente.Date.AddDays(1);
                dtVal = dtVal.AddHours(Heure);
                JoursBinaires jour = CUtilDate.GetJourBinaireFor(dtVal.DayOfWeek);
                while ((jour & JoursExecution) != jour)
                {
                    dtVal = dtVal.AddDays(1);
                    jour  = CUtilDate.GetJourBinaireFor(dtVal.DayOfWeek);
                }
            }
            dtVal = new DateTime(dtVal.Year, dtVal.Month, dtVal.Day, dtVal.Hour, dtVal.Minute, 0);
            return(dtVal);
        }
示例#5
0
        //--------------------------------------------
        public bool IsInPeriode(DateTime dt)
        {
            JoursBinaires j = CUtilDate.GetJourBinaireFor(dt.DayOfWeek);

            return((m_joursActivation & j) == j);
        }
示例#6
0
        //----------------------------------------------------------------------------------------
        /// <summary>
        /// Retourne tous les jours particuliers
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        private CCalendrier_JourParticulier GetJourParticulierAvecHeritage(DateTime date, bool bAutoriseLectureEnBase)
        {
            CCalendrier_JourParticulier jourParticulier       = new CCalendrier_JourParticulier(this.ContexteDonnee);
            CCalendrier_JourParticulier jourParticulierHerite = new CCalendrier_JourParticulier(this.ContexteDonnee);

            if (this.CalendrierDeBase != null)
            {
                jourParticulierHerite = this.CalendrierDeBase.GetJourParticulierAvecHeritage(date, bAutoriseLectureEnBase);
            }
            else
            {
                jourParticulierHerite = null;
            }

            // Vérifie s'il existe une exception "jour/mois/année" sur le jour du calendrier sélectionné
            if (jourParticulier.ReadIfExists(new CFiltreData(
                                                 CCalendrier_JourParticulier.c_champAnnee + "=@1 and " +
                                                 CCalendrier_JourParticulier.c_champMois + "=@2 and " +
                                                 CCalendrier_JourParticulier.c_champJour + "=@3 and " +
                                                 CCalendrier.c_champId + "=@4",
                                                 date.Year,
                                                 date.Month,
                                                 date.Day,
                                                 this.Id), bAutoriseLectureEnBase))
            {
                return(jourParticulier);
            }
            // Vérifie s'il existe une exception "jour/mois/année" sur le jour du calendrier de base
            if (jourParticulierHerite != null && jourParticulierHerite.Annee != null)
            {
                return(jourParticulierHerite);
            }

            // Vérifie s'il existe une exception "jour/mois" sur le jour du calendrier sélectionné
            if (jourParticulier.ReadIfExists(new CFiltreData(
                                                 CCalendrier_JourParticulier.c_champAnnee + " is null and " +
                                                 CCalendrier_JourParticulier.c_champMois + "=@1 and " +
                                                 CCalendrier_JourParticulier.c_champJour + "=@2 and " +
                                                 CCalendrier.c_champId + "=@3",
                                                 date.Month,
                                                 date.Day,
                                                 this.Id), bAutoriseLectureEnBase))
            {
                return(jourParticulier);
            }
            // Vérifie s'il existe une exception "jour/mois" sur le jour du calendrier de base
            if (jourParticulierHerite != null && jourParticulierHerite.Mois != null)
            {
                return(jourParticulierHerite);
            }

            // Vérifie s'il existe une exception "jour du mois" sur le jour du calendrier sélectionné
            if (jourParticulier.ReadIfExists(new CFiltreData(
                                                 CCalendrier_JourParticulier.c_champAnnee + " is null and " +
                                                 CCalendrier_JourParticulier.c_champMois + " is null and " +
                                                 CCalendrier_JourParticulier.c_champJour + "=@1 and " +
                                                 CCalendrier.c_champId + "=@2",
                                                 date.Day,
                                                 this.Id), bAutoriseLectureEnBase))
            {
                return(jourParticulier);
            }
            // Vérifie s'il existe une exception "jour" sur le jour du calendrier de base
            if (jourParticulierHerite != null && jourParticulierHerite.Jour != null)
            {
                return(jourParticulierHerite);
            }

            // Vérifie s'il existe une exception "jour de semaine" sur le jour du calendrier sélectionné
            if (jourParticulier.ReadIfExists(new CFiltreData(
                                                 CCalendrier_JourParticulier.c_champAnnee + " is null and " +
                                                 CCalendrier_JourParticulier.c_champMois + " is null and " +
                                                 CCalendrier_JourParticulier.c_champJour + " is null and " +
                                                 CCalendrier_JourParticulier.c_champJourSemaine + "=@1 and " +
                                                 CCalendrier.c_champId + "=@2",
                                                 (int)CUtilDate.GetJourBinaireFor(date.DayOfWeek),
                                                 this.Id), bAutoriseLectureEnBase))
            {
                return(jourParticulier);
            }
            // Vérifie s'il existe une exception "jour de semaine" sur le jour du calendrier de base
            if (jourParticulierHerite != null && jourParticulierHerite.JourSemaine != 0)
            {
                return(jourParticulierHerite);
            }

            return(null);
        }