Индивидуальное задание (7) ``` using System; class Program { static void Main(string[] args) { Console.WriteLine("Введите первое число:"); string firstNumberString = Console.ReadLine(); Console.WriteLine("Введите второе число:"); string secondNumberString = Console.ReadLine(); if (!IsNumeric(firstNumberString) || !IsNumeric(secondNumberString)) { Console.WriteLine("Ошибка: Введите числа корректно."); return; } int firstNumber = int.Parse(firstNumberString); int secondNumber = int.Parse(secondNumberString); int result = firstNumber * secondNumber; Console.WriteLine($"Результат умножения: {result}"); } static bool IsNumeric(string value) { foreach (char c in value) { if (!char.IsDigit(c)) return false; } return true; } } ``` 1 задача ``` static void Main(string[] args) { Console.WriteLine("Введите дату в формате ДД.ММ.ГГГГ:"); string dateString = Console.ReadLine(); if (DateTime.TryParseExact(dateString, "dd.MM.yyyy", null, System.Globalization.DateTimeStyles.None, out DateTime date)) { Console.WriteLine("Дата валидная"); } else { Console.WriteLine("Дата не валидная"); } } ``` 2 задача ``` class Program { static void Main() { Console.WriteLine("Введите первую дату в формате ДД.ММ.ГГГГ:"); DateTime data1 = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Введите вторую дату в формате ДД.ММ.ГГГГ:"); DateTime data2 = DateTime.Parse(Console.ReadLine()); TimeSpan raz = data1 - data2; int normraz = Math.Abs((int)raz.TotalDays); Console.WriteLine("Количество дней между датами: " + normraz); } } ``` 3 ``` 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.TotalHours); Console.WriteLine("Количество часов между датами: " + normraz); } } ``` 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 den = new DateTime(year, 1, 1).AddDays(255); Console.WriteLine($"День программиста в {year} году: {den.ToString("dd.MM.yyyy")} ({den.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 задача ``` Console.Write("Введите дату: "); DateTime date = new DateTime(2024,4, 30); DateTime date1 = DateTime.Parse(Console.ReadLine()); if (date > date1) { TimeSpan difference = date - date1; int s = difference.Days; Console.WriteLine("Осталось " + s + " дней до экзамена."); } else if (date < date1) { TimeSpan difference = date1 - date; int s = difference.Days; Console.WriteLine("Прошло " + s + " дней от экзамена."); } else { Console.WriteLine("Сегодня экзамен!"); } ``` 8 задача ``` Console.Write("Введите дату: "); DateTime date1 = DateTime.Parse(Console.ReadLine()); date1 = date1.AddDays(1); Console.WriteLine("Завтра будет дата: " + date1.ToString("dd.MM.yyyy")); ``` 9 задача ``` Console.Write("Введите день и месяц рождения: "); DateTime date1 = DateTime.ParseExact(Console.ReadLine(), "dd.MM", null); DateTime date2 = DateTime.ParseExact(Console.ReadLine(), "dd.MM", null); if (date1 > date2) { TimeSpan difference = date1 - date2; int s = difference.Days; Console.WriteLine("Осталось " + s + " до дня рождения."); } else if (date1 < date2) { TimeSpan difference = date2 - date1; int s = difference.Days; Console.WriteLine("Прошло " + s + " дней со дня рождения."); } 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(2007, 07,28), new DateTime(2005,1,25), new DateTime(2015,5,9), new DateTime(2022,7,25), new DateTime(2020,9,5), new DateTime(2021,9,6), new DateTime(2001,6,29), new DateTime(2024,2,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 задача ``` List Dates = new List { new DateTime(1935, 12, 15), new DateTime(2024, 1, 25), new DateTime(2020, 5, 7), new DateTime(2001, 10, 1) }; DateTime date1 = GetNearestDate(Dates); Console.WriteLine($"Ближайшая дата рождения: {date1:dd.MM.yyyy}"); static DateTime GetNearestDate(List dates) { DateTime today = DateTime.Today; dates.Sort((d1, d2) => Math.Abs((d1 - today).Days).CompareTo(Math.Abs((d2 - today).Days))); return dates[0]; } ``` 13 задача ``` string[] Dates = { "18.11.1887", "10.05.2005", "29.11.2006", "16.11.2021", "12.11.2008" }; Dictionary month1 = new Dictionary(); foreach (var date in Dates) { DateTime date1 = DateTime.ParseExact(date, "dd.MM.yyyy", null); string month = date1.ToString("MMMM"); if (month1.ContainsKey(month)) { month1[month]++; } else { month1.Add(month, 1); } } var popul = month1.Aggregate((l, r) => l.Value > r.Value ? l : r).Key; Console.WriteLine("Самый популярный месяц: " + popul); ``` 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 задача ``` int years = 2006; int weeks = CalculateWeekends(years); Console.WriteLine($"Количество выходных дней в {years} году: {weeks}"); static int CalculateWeekends(int year) { DateTime date1 = new DateTime(year, 1, 1); DateTime date2 = new DateTime(year, 12, 31); int c = 0; for (var date = date1; date <= date2; date = date.AddDays(1)) { if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday) { c++; } } return c; } ```