Изменить код вывода календаря - C#
Формулировка задачи:
Доброго времени суток, у Меня есть код, который выводит календарь на указанный год.
Мне нужно, чтобы Я вводил год и месяц, и Мне выводил календарь на указанный месяц.
Спасибо.
Код прилагаю.
class Program { public enum Months { Январь = 1, Февраль = 2, Март = 3, Апрель = 4, Май = 5, Июнь = 6, Июль = 7, Август = 8, Сентябрь = 9, Октябрь = 10, Ноябрь = 11, Декабрь = 12 } static void Main(string[] args) { ShowYear(Convert.ToInt32(Console.ReadLine())); Console.ReadLine(); } public static void ShowYear(int yearnumber) { Calendar myCal = CultureInfo.InvariantCulture.Calendar; DateTime myDT = new DateTime(yearnumber, 1, 1, myCal); for (int i = 1; i < 13; i++) { Console.WriteLine((Months)i); Console.WriteLine(); int month = myCal.GetMonth(myDT); int j = Convert.ToInt32(myCal.GetDayOfWeek(myDT)) - 1; for (int m = 0; m < j; m++) { Console.Write(" "); } while (myCal.GetMonth(myDT) == month) { if (j % 7 == 0) Console.WriteLine(); string space = (myDT.Day.ToString().Length > 1) ? " " : " "; Console.Write(myDT.Day + space); myDT = myDT.AddDays(1); j++; } Console.WriteLine(); Console.WriteLine(); } }
Решение задачи: «Изменить код вывода календаря»
textual
Листинг программы
static void PrintMonth(int year, int month) { var date = new DateTime(year, month, 1); var count = (date.AddMonths(1) - date).Days; var skip = (int)date.DayOfWeek; Console.Write("Пн Вт Ср Чт Пт"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(" Сб Вс"); Console.Write(string.Join(String.Empty, Enumerable.Repeat<string>(" ", skip - 1))); for (int i = 0; i < count; i++) { Console.ResetColor(); var d = date.AddDays(i); if (d.DayOfWeek == DayOfWeek.Sunday || d.DayOfWeek == DayOfWeek.Saturday) { Console.ForegroundColor = ConsoleColor.Red; } Console.Write("{0,-3}", i + 1); if (d.DayOfWeek == DayOfWeek.Sunday) { Console.WriteLine(); } } Console.WriteLine(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д