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); }
/// <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)); }
//----------------------------------------- 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 { } } } }
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); }
//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); }
//-------------------------------------------- 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()); }