예제 #1
0
파일: zprint.cs 프로젝트: 24/source_04
        //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);
        }
예제 #2
0
파일: Print.cs 프로젝트: 24/source_04
        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);
        }
예제 #3
0
 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);
     }
 }
예제 #4
0
파일: Print.cs 프로젝트: 24/source_04
 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);
                 }
             }
         }
     }
 }
예제 #5
0
파일: Print1.cs 프로젝트: 24/source_04
 //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);
         }
     }
 }
예제 #6
0
        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");
        }