Индивидуальное задание №4 ``` using System.Numerics; BigInteger chislo = BigInteger.Pow(2, 64) - 1; string chisloString = chislo.ToString(); Console.WriteLine("rezultat: " + chisloString); ``` 1. ``` Console.Write("Введите дату в формате ДД.ММ.ГГГГ: "); string input = Console.ReadLine(); DateTime date; if (DateTime.TryParseExact(input, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out date)) { Console.WriteLine("Введенная строка является валидной датой "); } else { Console.WriteLine("Введенная строка не является валидной датой."); } ``` 2. ``` Console.WriteLine("Введите первую дату:"); DateTime Date1 = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Введите вторую дату:"); DateTime Date2 = DateTime.Parse(Console.ReadLine()); TimeSpan raznica = Date2 - Date1; int daysRaznica = raznica.Days; Console.WriteLine("Количество дней между двумя датами: " + daysRaznica); ``` 3. ``` Console.WriteLine("Введите первую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:"); DateTime data1 = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Введите вторую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:"); DateTime data2 = DateTime.Parse(Console.ReadLine()); TimeSpan raz = data2 - data1; double razz = Math.Abs(raz.TotalHours); Console.WriteLine("Количество часов между датами: " + razz); ``` 4. ``` class Program { static void Main() { Console.WriteLine("Введите первую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:"); DateTime data1 = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Введите вторую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:"); DateTime data2 = DateTime.Parse(Console.ReadLine()); TimeSpan raz = data2 - data1; double normraz = Math.Abs(raz.TotalMinutes); Console.WriteLine("Количество часов между датами: " + normraz); } } ``` 5. ``` class Program { static void Main() { Console.WriteLine("Введите год"); int year = int.Parse(Console.ReadLine()); DateTime day = new DateTime(year, 1, 1).AddDays(255); Console.WriteLine($"День программиста в {year} году: {day.ToString("dd.MM.yyyy")} ({day.DayOfWeek})"); } } ``` 6. ``` class Program { static void Main() { Console.WriteLine("Введите год: "); int year = int.Parse(Console.ReadLine()); Console.WriteLine("Введите число от 1 до 365: "); int day = int.Parse(Console.ReadLine()); if (day >= 1 || day <= 365) { DateTime den = new DateTime(year, 1, 1).AddDays(day - 1); Console.WriteLine(($"В {year} году день {day} является: {den.ToString("dd.MM.yyyy")} ({den.DayOfWeek})")); } else { Console.WriteLine("Введите число от 1 до 365"); } } ``` 7. ``` DateTime examen = new DateTime(2024, 7, 20); Console.WriteLine("Введите дату:"); DateTime date = DateTime.Parse(Console.ReadLine()); if (date < examen) { TimeSpan raz = examen - date; int daysRaz = Math.Abs((int)raz.TotalDays); Console.WriteLine($"Осталость {daysRaz} дней"); } else if (date > examen) { TimeSpan raznica = date - examen; int daysRaznica = Math.Abs((int) raznica.TotalDays); Console.WriteLine($"Прошло {daysRaznica} дней"); } else { Console.WriteLine("Экзамен сегодня!"); } ``` 8. ``` Console.WriteLine("Введите дату в формате ДД.ММ.ГГГГ: "); DateTime date = DateTime.Parse(Console.ReadLine()); DateTime tomorrow = date.AddDays(1); Console.WriteLine("Завтрашняя дата: " + tomorrow.ToString("dd.MM.yyyy")); ``` 9. ``` int day = 1; int month = 9; DateTime today = DateTime.Today; DateTime dr = new DateTime(today.Year, month, day); if (today < dr) { TimeSpan raz = dr - today; int daysRaz = Math.Abs((int)raz.TotalDays); Console.WriteLine($"Осталость {daysRaz} дней"); } else if (today > dr) { TimeSpan raznica = today - dr; int daysRaznica = Math.Abs((int)raznica.TotalDays); Console.WriteLine($"Прошло {daysRaznica} дней"); } else { Console.WriteLine("Поздравляю с днем рождения!"); } ``` 10. ``` Console.Write("Введите время: "); string time1 = Console.ReadLine(); if (TimeSpan.TryParse(time1, out TimeSpan time)) { int seconds = (time.Hours * 3600) + (time.Minutes * 60) + time.Seconds; Console.WriteLine("Количество секунд, которые прошли с начала суток: " + seconds); } else { Console.WriteLine("Неккоректный формат времени!"); } ``` 11. ``` List Dates = new List { new DateTime(2008, 11,15), new DateTime(2007,2,25), new DateTime(2015,5,22), new DateTime(2022,7,30), new DateTime(2020,9,5), new DateTime(2021,9,6), new DateTime(2003,8,14), new DateTime(2024,3,1) }; DateTime today = DateTime.Today; DateTime date1 = Dates[0]; TimeSpan date2 = today - date1; foreach (DateTime date in Dates) { TimeSpan difference = today - date; if (Math.Abs(difference.Days) < Math.Abs(date2.Days)) { date2 = difference; date1 = date; } } Console.WriteLine("Ближайшая дата: " + date1.ToShortDateString()); ``` 12. ``` using System.Globalization; List birthDates = new List { new DateTime(1845, 11, 8), new DateTime(2022, 9, 25), new DateTime(2020, 3, 15), new DateTime(2001, 10, 1), new DateTime(2024, 3, 29) }; var birthdaysByMonth = birthDates.GroupBy(d => d.Month) .OrderBy(g => g.Key) .Select(g => new { Month = g.Key, Count = g.Count() }); foreach (var item in birthdaysByMonth) { Console.WriteLine($"{CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(item.Month)}: {item.Count}"); } ``` 13. ``` string[] date = { "05.12.2014", "12.03.2022", "25.08.2022", "14.03.2024", "18.05.2021", "30.03.2006" }; var monthFrequency = date.Select(date => DateTime.ParseExact(date, "dd.MM.yyyy", null).ToString("MM")) .GroupBy(month => month) .Select(group => new { Month = group.Key, Count = group.Count() }) .OrderByDescending(x => x.Count); var mostCommonMonth = monthFrequency.First(); Console.WriteLine($"Самый популярный месяц: {mostCommonMonth.Month}. Количество дат в этом месяце: {mostCommonMonth.Count}"); ``` 14. ``` int years1 = 10; int count1 = 0; int count2 = 0; for (int year = 1; year <= years1; year++) { for (int month = 1; month <= 12; month++) { DateTime date1 = new DateTime(year, month, 13); if (date1.DayOfWeek == DayOfWeek.Friday) { count1++; } count2++; } } Console.WriteLine("Вероятности выпадения 13 числа каждого месяца на:"); Console.WriteLine("Понедельник: " + (double)CountOfThirteenths(DayOfWeek.Monday) / count2); Console.WriteLine("Вторник: " + (double)CountOfThirteenths(DayOfWeek.Tuesday) / count2); Console.WriteLine("Среда: " + (double)CountOfThirteenths(DayOfWeek.Wednesday) / count2); Console.WriteLine("Четверг: " + (double)CountOfThirteenths(DayOfWeek.Thursday) / count2); Console.WriteLine("Пятницу: " + (double)count1 / count2); Console.WriteLine("Субботу: " + (double)CountOfThirteenths(DayOfWeek.Saturday) / count2); Console.WriteLine("Воскресенье: " + (double)CountOfThirteenths(DayOfWeek.Sunday) / count2); static int CountOfThirteenths(DayOfWeek day) { int count3 = 0; for (int year = 1; year <= 10; year++) { for (int month = 1; month <= 12; month++) { DateTime date1 = new DateTime(year, month, 13); if (date1.DayOfWeek == day) { count3++; } } } return count3; } ``` 15. ``` string wod = "00:00-01:00,00:30-02:30,01:30-03:00,02:00-04:00,02:30-05:00"; string[] schel = wod.Split(','); int[] time1 = new int[24]; foreach (string schedule in schel) { string[] times = schedule.Split('-'); string[] startTime = times[0].Split(':'); string[] endTime = times[1].Split(':'); int hour1 = int.Parse(startTime[0]); int hour2 = int.Parse(endTime[0]); for (int i = hour1; i < hour2; i++) { time1[i]++; } } int maxTime = 0; for (int i = 0; i < 24; i++) { if (time1[i] > maxTime) { maxTime = time1[i]; } } Console.WriteLine("Максимальное количество касс работает в интервале: "); for (int i = 0; i < 24; i++) { if (time1[i] == maxTime) { Console.WriteLine("{0:00}:00 - {1:00}:00", i, i + 1); } } ``` 16. ``` using System; class Program { static void Main() { int year = 2024; int countWeekendDays = 0; for (int month = 1; month <= 12; month++) { for (int day = 1; day <= DateTime.DaysInMonth(year, month); day++) { DateTime date = new DateTime(year, month, day); if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday) { countWeekendDays++; } } } Console.WriteLine("Количество выходных дней в году " + year + ": " + countWeekendDays); } } ```