コード例 #1
0
ファイル: Program.cs プロジェクト: ShomreiTorah/Schedulizer
 static void Main(string[] args)
 {
     for (var date = new HebrewDate(new DateTime(2015, 1, 1)); date.EnglishDate.Year <= 2020; date++) {
         var calc = new ScheduleCalculator(date);
         Console.WriteLine("---- " + date.EnglishDate.ToShortDateString()
                         + " " + date.DayOfWeek
                         + ": " + date.ToString("d") + " " + calc.CalcTitle());
         foreach (var time in calc.CalcTimes().OrderBy(c => c.Time)) {
             Console.WriteLine((time.Name + ":").PadRight(10) + time.TimeString + (time.IsBold ? " **" : ""));
         }
         Console.WriteLine();
         Console.WriteLine();
     }
     if (!Console.IsOutputRedirected) {
         Console.ReadKey();
     }
 }
コード例 #2
0
        public void UpdateSlide(Slide slide)
        {
            if (slide == null) throw new ArgumentNullException("slide");

            DateTime englishDate;
            if (!DateTime.TryParseExact(slide.Name, "D", CultureInfo.InvariantCulture, DateTimeStyles.None, out englishDate))
                throw new ArgumentException("Bad slide name: " + slide.Name, "slide");
            var date = new HebrewDate(englishDate);
            if (!date.Info.Isשבת || date.Parsha == null)
                throw new InvalidOperationException(englishDate.ToLongDateString() + " shouldn't have announcements");

            var cell = Context.GetCell(date);

            slide.Shapes.Title.TextFrame.TextRange.Text = "פרשת " + cell.Date.Parsha;

            var dateRange = slide.Shapes[2].TextFrame.TextRange;

            var englishDateText = englishDate.ToString("MMM d", CultureInfo.CurrentCulture);
            dateRange.Text = englishDateText + englishDate.Day.GetSuffix() + "\t" + date.ToString("M");
            dateRange.Characters(englishDateText.Length + 1, 2).Font.Superscript = MsoBool.msoTrue;

            var printedPairs = from t in cell.Times
                               group t by t.Name into g
                               orderby g.First().Time
                               select new {
                                   Name = g.Key,
                                   Value = g.Select(t => t.TimeString).Join(" / "),
                                   IsBold = g.Any(t => t.IsBold),
                               };

            var timesRange = slide.Shapes[3].TextFrame.TextRange;
            timesRange.Text = "";
            var lineNumber = 0;
            foreach (var pair in printedPairs) {
                timesRange.InsertAfter(pair.Name + "\t");
                var valueStart = timesRange.Length;

                timesRange.InsertAfter(pair.Value + "\n");

                if (pair.IsBold) {
                    var boldRange = timesRange.Characters(valueStart + 1, pair.Value.Length);
                    boldRange.Font.Bold = MsoBool.msoTrue;
                    boldRange.Font.Color.RGB = 255;
                }

                lineNumber++;
                if (lineNumber == 3)
                    timesRange.InsertAfter("\n");
            }
        }