public override CResultAErreur MajChamps()
        {
            CResultAErreur result = base.MajChamps();

            if (!result)
            {
                return(result);
            }
            JoursBinaires jrs = JoursBinaires.Aucun;

            for (int n = 0; n < 7; n++)
            {
                if (m_wndListeJours.Items[n].Checked)
                {
                    jrs |= CUtilDate.GetJourBinaireForBaseLundi(n);
                }
            }
            CPlanificationTacheFrequente plFreq = (CPlanificationTacheFrequente)Planification;

            plFreq.JoursExecution = jrs;
            if (m_wndHeureFin.ValeurHeure == null)
            {
                m_wndHeureFin.ValeurHeure = 23;
            }
            plFreq.HeureFin = (double)m_wndHeureFin.ValeurHeure;
            plFreq.Ecart    = m_wndEcart.IntValue;
            plFreq.Unite    = (CPlanificationTacheFrequente.EUniteTemps)m_cmbUnite.SelectedValue;

            return(result);
        }
        /// /////////////////////////////////////////
        public override CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            result = base.Serialize(serializer);
            if (!result)
            {
                return(result);
            }

            int nJours = (int)m_joursExecution;

            serializer.TraiteInt(ref nJours);
            m_joursExecution = (JoursBinaires)nJours;

            serializer.TraiteDouble(ref m_dHeureFin);
            serializer.TraiteInt(ref m_nEcart);
            int nUnite = (int)m_nUnite;

            serializer.TraiteInt(ref nUnite);
            m_nUnite = (EUniteTemps)nUnite;

            return(result);
        }
示例#3
0
        /// <summary>
        /// Retourne le dayOf week correspondant à un jour binaire
        /// </summary>
        /// <param name="day"></param>
        /// <returns></returns>
        public static DayOfWeek GetDayOfWeekFor(JoursBinaires jour)
        {
            switch (jour)
            {
            case JoursBinaires.Dimanche:
                return(DayOfWeek.Sunday);

            case JoursBinaires.Lundi:
                return(DayOfWeek.Monday);

            case JoursBinaires.Mardi:
                return(DayOfWeek.Tuesday);

            case JoursBinaires.Mercredi:
                return(DayOfWeek.Wednesday);

            case JoursBinaires.Jeudi:
                return(DayOfWeek.Thursday);

            case JoursBinaires.Vendredi:
                return(DayOfWeek.Friday);

            case  JoursBinaires.Samedi:
                return(DayOfWeek.Saturday);
            }
            return(DayOfWeek.Sunday);
        }
        /// ///////////////////////////////////////////
        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));
        }
示例#5
0
        //-----------------------------------------
        public CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            int nJour = (int)m_joursActivation;

            serializer.TraiteInt(ref nJour);
            m_joursActivation = (JoursBinaires)nJour;
            return(result);
        }
 //----------------------------------------------
 public void Init(IPeriodeActivation periode)
 {
     m_periode = periode as CPeriodeActivationDansSemaine;
     foreach (Control ctrl in Controls)
     {
         CheckBox chk = ctrl as CheckBox;
         if (chk != null)
         {
             try{
                 JoursBinaires j = (JoursBinaires)Int32.Parse(chk.Tag.ToString());
                 chk.Checked = ((m_periode.JoursActivation) & j) == j;
             }
             catch {}
         }
     }
 }
        //----------------------------------------------
        public CResultAErreur MajChamps()
        {
            JoursBinaires jFinal = JoursBinaires.Aucun;

            foreach (Control ctrl in Controls)
            {
                CheckBox chk = ctrl as CheckBox;
                if (chk != null && chk.Checked)
                {
                    try{
                        JoursBinaires j = (JoursBinaires)Int32.Parse(chk.Tag.ToString());
                        jFinal |= j;
                    }
                    catch {}
                }
            }
            m_periode.JoursActivation = jFinal;
            return(CResultAErreur.True);
        }
 //----------------------------------------------
 public CControleEditePeriodeJoursSemaine()
 {
     InitializeComponent();
     foreach (Control ctrl in Controls)
     {
         CheckBox chk = ctrl as CheckBox;
         if (chk != null)
         {
             try
             {
                 int           nTag = Int32.Parse(chk.Tag.ToString());
                 JoursBinaires j    = (JoursBinaires)nTag;
                 DayOfWeek     d    = CUtilDate.GetDayOfWeekFor(j);
                 chk.Text = CUtilDate.GetNomJour(d, false);
             }
             catch { }
         }
     }
 }
示例#9
0
        public override CResultAErreur MajChamps()
        {
            CResultAErreur result = base.MajChamps();

            if (!result)
            {
                return(result);
            }
            JoursBinaires jrs = JoursBinaires.Aucun;

            for (int n = 0; n < 7; n++)
            {
                if (m_wndListeJours.Items[n].Checked)
                {
                    jrs |= CUtilDate.GetJourBinaireForBaseLundi(n);
                }
            }
            ((CPlanificationTacheHebdomadaire)Planification).JoursExecution = jrs;
            return(result);
        }
        /// ///////////////////////////////////////////
        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);
        }
        /// ///////////////////////////////////////////
        public override CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            result = base.Serialize(serializer);
            if (!result)
            {
                return(result);
            }

            serializer.TraiteInt(ref m_nEcartSemaine);

            int nJours = (int)m_joursExecution;

            serializer.TraiteInt(ref nJours);
            m_joursExecution = (JoursBinaires)nJours;

            return(result);
        }
示例#12
0
 //Retourne true si le DayOfWeek fait partie de la liste de jours binaires
 public static bool IsDayInJourBinaire(DayOfWeek day, JoursBinaires jours)
 {
     return((jours & GetJourBinaireFor(day)) != 0);
 }
示例#13
0
        //--------------------------------------------
        public bool IsInPeriode(DateTime dt)
        {
            JoursBinaires j = CUtilDate.GetJourBinaireFor(dt.DayOfWeek);

            return((m_joursActivation & j) == j);
        }
 //-------------------------------------------------------------------
 public static string GetKeyJoursDeSemaine(JoursBinaires jour)
 {
     return("JS" + jour.ToString());
 }