//private static ITrace _tr = Trace.CurrentTrace; public static int GetDailyPrintNumber(Date date, int refNumber, Date refDate, SpecialDay noPrintDays, Dictionary <int, int> noPrintDates, Dictionary <int, int> noPrintNumbers) { int no = refNumber; Date date2 = refDate; while (date > date2) { date2 = date2.AddDays(1); if (!noPrintDates.ContainsKey(date2.AbsoluteDay) && !SpecialDayTools.IsSpecialDay(noPrintDays, date2)) { do { no++; } while (noPrintNumbers.ContainsKey(no)); } } while (date < date2) { if (!noPrintDates.ContainsKey(date2.AbsoluteDay) && !SpecialDayTools.IsSpecialDay(noPrintDays, date2)) { do { no--; } while (noPrintNumbers.ContainsKey(no)); } date2 = date2.AddDays(-1); } return(no); }
protected int GetDailyPrintNumber(Date date) { PrintDateNumberReference dateNumberReference = _dateNumberReferences.GetReference(date); int no = dateNumberReference.number; Date date2 = dateNumberReference.date; while (date > date2) { date2 = date2.AddDays(1); if (!_noPrintDates.ContainsKey(date2.AbsoluteDay) && !SpecialDayTools.IsSpecialDay(_noPrintDays, date2)) { do { no++; } while (_noPrintNumbers.ContainsKey(no)); } } while (date < date2) { if (!_noPrintDates.ContainsKey(date2.AbsoluteDay) && !SpecialDayTools.IsSpecialDay(_noPrintDays, date2)) { do { no--; } while (_noPrintNumbers.ContainsKey(no)); } date2 = date2.AddDays(-1); } return(no); }
public static bool PrintExists(Date date) { // La croix - 2013-05-02 - no 39571.pdf // pas de journal le dimanche, pas de journal le 1er mai, le 8 mai, lundi de pentecote if (date.DayOfWeek != DayOfWeek.Sunday && (date.Month != 5 || date.Day != 1) && (date.Month != 5 || date.Day != 8) && date != SpecialDayTools.GetAscensionThursdayDate(date.Year) && date != SpecialDayTools.GetPentecostMondayDate(date.Year)) { return(true); } else { return(false); } }
private void GetNoPrintDates(string[] noPrintDates) { _noPrintDays = SpecialDay.NoDay; _noPrintMonths = Month.NoMonth; _noPrintDates = new Dictionary <int, int>(); foreach (string noPrintDate in noPrintDates) { Date date; if (Date.TryParseExact(noPrintDate, "yyyy-MM-dd", CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out date)) { int d = date.AbsoluteDay; if (!_noPrintDates.ContainsKey(d)) { _noPrintDates.Add(d, d); } } else if (Date.TryParseExact(noPrintDate, "yyyy-MM", CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out date)) { int d = date.AbsoluteDay; if (!_noPrintDates.ContainsKey(d)) { _noPrintDates.Add(d, d); } } else { SpecialDay day = SpecialDayTools.GetSpecialDay(noPrintDate); if (day != SpecialDay.NoDay) { _noPrintDays |= SpecialDayTools.GetSpecialDay(noPrintDate); } else { Month month = zdate.GetMonth(noPrintDate); if (month != Month.NoMonth) { _noPrintMonths |= zdate.GetMonth(noPrintDate); } else { throw new PBException("unknow NoPrintDate value \"{0}\"", noPrintDate); } } } } }
//private void GetNoPrintDays(string[] noPrintDays) private void GetNoPrintDays(IEnumerable <string> noPrintDays) { _noPrintDays = 0; _noPrintDates = new Dictionary <int, int>(); foreach (string noPrintDay in noPrintDays) { Date date; if (Date.TryParseExact(noPrintDay, "yyyy-MM-dd", CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out date)) { int d = date.AbsoluteDay; if (!_noPrintDates.ContainsKey(d)) { _noPrintDates.Add(d, d); } } else { _noPrintDays |= SpecialDayTools.GetSpecialDay(noPrintDay); } } }
public static void Test_SpecialDays_01() { string logFile = zPath.Combine(XmlConfig.CurrentConfig.GetExplicit("DataDir"), @"control\ctrl_SpecialDays_01.txt"); Trace.WriteLine("write to file \"{0}\"", logFile); //Trace.CurrentTrace.AddTraceFile(logFile, LogOptions.RazLogFile); Trace.CurrentTrace.AddOnWrite("Print_Exe", WriteToFile.Create(logFile, FileOption.RazFile).Write); //_wr.DisableMessage = true; CultureInfo culture = new CultureInfo("fr-FR"); Trace.WriteLine("Mardi gras Dimanche des Dimanche de Jeudi de Dimanche de"); Trace.WriteLine(" Rameaux Pâques l'Ascension Pentecôte"); for (int year = 2013; year <= 2035; year++) { Date dateMardiGras = SpecialDayTools.GetMardiGrasDate(year); string dateMardiGrasString = string.Format(culture, "{0:dd} {0,-7:MMMM} {0:yyyy}", dateMardiGras); Date datePalmSunday = SpecialDayTools.GetPalmSundayDate(year); string datePalmSundayString = string.Format(culture, "{0:dd} {0,-7:MMMM} {0:yyyy}", datePalmSunday); Date dateEasterSunday = SpecialDayTools.GetEasterSundayDate(year); string dateEasterSundayString = string.Format(culture, "{0:dd} {0,-7:MMMM} {0:yyyy}", dateEasterSunday); Date dateAscensionThursday = SpecialDayTools.GetAscensionThursdayDate(year); string dateAscensionThursdayString = string.Format(culture, "{0:dd} {0,-7:MMMM} {0:yyyy}", dateAscensionThursday); Date datePentecostSunday = SpecialDayTools.GetPentecostSundayDate(year); string datePentecostSundayString = string.Format(culture, "{0:dd} {0,-7:MMMM} {0:yyyy}", datePentecostSunday); Trace.WriteLine("{0} {1} {2} {3} {4}", dateMardiGrasString, datePalmSundayString, dateEasterSundayString, dateAscensionThursdayString, datePentecostSundayString); } //_wr.DisableMessage = false; //Trace.CurrentTrace.RemoveTraceFile(logFile); Trace.CurrentTrace.RemoveOnWrite("Print_Exe"); }