Exemplo n.º 1
0
        private static void PrintWholeYear(MyMonth curr, DayOfWeek start, int dayWidth)
        {
            string header = curr.Date.Year.ToString();

            Console.Write(BuildHeader(header, ((dayWidth + 1) * 21) + 6));
            Console.WriteLine();

            for (int i = 0; i < 4; i++)
            {
                MyMonth first = new MyMonth(new DateTime(curr.Date.Year, (i * 3) + 1, 1));
                if (first.Date.Month != curr.Date.Month)
                {
                    first.HighlightDay = false;
                }
                MyMonth middle = new MyMonth(new DateTime(curr.Date.Year, (i * 3) + 2, 1));
                if (middle.Date.Month != curr.Date.Month)
                {
                    middle.HighlightDay = false;
                }
                MyMonth last = new MyMonth(new DateTime(curr.Date.Year, (i * 3) + 3, 1));
                if (last.Date.Month != curr.Date.Month)
                {
                    last.HighlightDay = false;
                }

                int width = (dayWidth + 1) * 7;

                header = first.Date.ToString("MMMM");
                Console.Write(BuildHeader(header, width));
                PrintPadding();

                header = middle.Date.ToString("MMMM");
                Console.Write(BuildHeader(header, width));
                PrintPadding();

                header = last.Date.ToString("MMMM");
                Console.Write(BuildHeader(header, width));
                PrintPadding();
                Console.WriteLine();

                DateTime firstEnd  = first.Date.AddMonths(1);
                DateTime middleEnd = middle.Date.AddMonths(1);
                DateTime lastEnd   = last.Date.AddMonths(1);

                while ((first.PrintDate < firstEnd) || (middle.PrintDate < middleEnd) || (last.PrintDate < lastEnd))
                {
                    first.PrintNextWeek(start, dayWidth);
                    PrintPadding();
                    middle.PrintNextWeek(start, dayWidth);
                    PrintPadding();
                    last.PrintNextWeek(start, dayWidth);
                    PrintPadding();

                    Console.WriteLine();
                }
            }
        }
Exemplo n.º 2
0
        private static void PrintThreeMonths(MyMonth curr, DayOfWeek start, int dayWidth, bool printYear)
        {
            MyMonth prev = new MyMonth(curr.Date.AddMonths(-1));

            prev.HighlightDay = false;
            MyMonth next = new MyMonth(curr.Date.AddMonths(1));

            next.HighlightDay = false;

            int    width  = (dayWidth + 1) * 7;
            string header = String.Empty;

            string format = "MMMM";

            if (printYear == true)
            {
                format = format + " yyyy";
            }

            header = prev.Date.ToString(format);
            Console.Write(BuildHeader(header, width));
            PrintPadding();

            header = curr.Date.ToString(format);
            Console.Write(BuildHeader(header, width));
            PrintPadding();

            header = next.Date.ToString(format);
            Console.Write(BuildHeader(header, width));
            PrintPadding();

            Console.WriteLine();

            PrintDaysOfWeek(start, dayWidth);
            PrintPadding();
            PrintDaysOfWeek(start, dayWidth);
            PrintPadding();
            PrintDaysOfWeek(start, dayWidth);
            Console.WriteLine();

            DateTime prevEnd = new DateTime(curr.Date.Year, curr.Date.Month, 1);
            DateTime currEnd = new DateTime(next.Date.Year, next.Date.Month, 1);
            DateTime nextEnd = new DateTime(next.Date.Year, next.Date.Month + 1, 1);

            while ((curr.PrintDate < currEnd) || (prev.PrintDate < prevEnd) || (next.PrintDate < nextEnd))
            {
                prev.PrintNextWeek(start, dayWidth);
                PrintPadding();
                curr.PrintNextWeek(start, dayWidth);
                PrintPadding();
                next.PrintNextWeek(start, dayWidth);
                PrintPadding();

                Console.WriteLine();
            }
        }
Exemplo n.º 3
0
        private static void PrintMonth(MyMonth currMonth, DayOfWeek start, int dayWidth)
        {
            string header = currMonth.Date.ToString("MMMM yyyy");
            int    width  = (dayWidth + 1) * 7;

            Console.WriteLine(BuildHeader(header, width));

            PrintDaysOfWeek(start, dayWidth);
            Console.WriteLine();

            DateTime end = new DateTime(currMonth.Date.Year, currMonth.Date.Month + 1, 1);

            while (currMonth.PrintDate < end)
            {
                currMonth.PrintNextWeek(start, dayWidth);
                Console.WriteLine();
            }
        }