Изменить код вывода календаря - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, у Меня есть код, который выводит календарь на указанный год. Мне нужно, чтобы Я вводил год и месяц, и Мне выводил календарь на указанный месяц. Спасибо. Код прилагаю.
Листинг программы
  1. class Program
  2. {
  3. public enum Months
  4. {
  5. Январь = 1,
  6. Февраль = 2,
  7. Март = 3,
  8. Апрель = 4,
  9. Май = 5,
  10. Июнь = 6,
  11. Июль = 7,
  12. Август = 8,
  13. Сентябрь = 9,
  14. Октябрь = 10,
  15. Ноябрь = 11,
  16. Декабрь = 12
  17. }
  18. static void Main(string[] args)
  19. {
  20. ShowYear(Convert.ToInt32(Console.ReadLine()));
  21. Console.ReadLine();
  22. }
  23. public static void ShowYear(int yearnumber)
  24. {
  25. Calendar myCal = CultureInfo.InvariantCulture.Calendar;
  26. DateTime myDT = new DateTime(yearnumber, 1, 1, myCal);
  27. for (int i = 1; i < 13; i++)
  28. {
  29. Console.WriteLine((Months)i);
  30. Console.WriteLine();
  31. int month = myCal.GetMonth(myDT);
  32. int j = Convert.ToInt32(myCal.GetDayOfWeek(myDT)) - 1;
  33. for (int m = 0; m < j; m++) { Console.Write(" "); }
  34. while (myCal.GetMonth(myDT) == month)
  35. {
  36. if (j % 7 == 0) Console.WriteLine();
  37. string space = (myDT.Day.ToString().Length > 1) ? " " : " ";
  38. Console.Write(myDT.Day + space);
  39. myDT = myDT.AddDays(1);
  40. j++;
  41. }
  42. Console.WriteLine();
  43. Console.WriteLine();
  44. }
  45. }

Решение задачи: «Изменить код вывода календаря»

textual
Листинг программы
  1. static void PrintMonth(int year, int month)
  2. {
  3.     var date = new DateTime(year, month, 1);
  4.     var count = (date.AddMonths(1) - date).Days;
  5.     var skip = (int)date.DayOfWeek;
  6.     Console.Write("Пн Вт Ср Чт Пт");
  7.     Console.ForegroundColor = ConsoleColor.Red;
  8.     Console.WriteLine(" Сб Вс");
  9.     Console.Write(string.Join(String.Empty, Enumerable.Repeat<string>("   ", skip - 1)));
  10.  
  11.     for (int i = 0; i < count; i++)
  12.     {
  13.         Console.ResetColor();
  14.         var d = date.AddDays(i);
  15.         if (d.DayOfWeek == DayOfWeek.Sunday || d.DayOfWeek == DayOfWeek.Saturday)
  16.         {
  17.             Console.ForegroundColor = ConsoleColor.Red;
  18.         }
  19.         Console.Write("{0,-3}", i + 1);
  20.         if (d.DayOfWeek == DayOfWeek.Sunday)
  21.         {
  22.             Console.WriteLine();
  23.         }
  24.     }
  25.     Console.WriteLine();
  26. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы