Работа с датами - расписание сериала - C#
Формулировка задачи:
Новый телевизионный сериал начинается с первого понедельника февраля 2016 года. Сериал идет четыре раза в неделю по понедельникам, вторникам, средам и четвергам, исключая следующие праздники 23 февраля, 8 марта, 1 мая и 9 мая. Выведите дни, в которых можно посмотреть сериал и определите количество серий, которые надо показать до 1 июня 2016 года.
Решение задачи: «Работа с датами - расписание сериала»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- DateTime[] holidays = new DateTime[]{ new DateTime(2016, 02, 23), new DateTime(2016, 03, 08),
- new DateTime(2016, 05, 01), new DateTime(2016, 05, 09)};
- DateTime firstdate = new DateTime(2016, 02, 01);
- while (firstdate.DayOfWeek != DayOfWeek.Monday) firstdate = firstdate.AddDays(1);
- DateTime lastdate = new DateTime(2016, 06, 01);
- List<DateTime> showDates = new List<DateTime>();
- while (lastdate != firstdate.AddDays(-1)) { //включительно
- if ((firstdate.DayOfWeek == DayOfWeek.Monday || firstdate.DayOfWeek == DayOfWeek.Tuesday ||
- firstdate.DayOfWeek == DayOfWeek.Wednesday || firstdate.DayOfWeek == DayOfWeek.Thursday) &&
- !holidays.Contains(firstdate, new HolidayComparer())) showDates.Add(firstdate);
- firstdate = firstdate.AddDays(1);
- }
- Console.WriteLine("Кол-во серий: " + showDates.Count + Environment.NewLine +
- string.Join(Environment.NewLine, showDates.Select(x => x.ToShortDateString())));
- Console.ReadKey();
- }
- class HolidayComparer : IEqualityComparer<DateTime>
- {
- public bool Equals(DateTime x, DateTime y)
- {
- return x.Month == y.Month && x.Day == y.Day;
- }
- public int GetHashCode(DateTime obj)
- {
- return obj.GetHashCode();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д