Работа с датами - расписание сериала - 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(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д