Bolshakova Anna 1b529c4e35 2nd com | 9 kuukautta sitten | |
---|---|---|
lab4_5 | 9 kuukautta sitten | |
.gitignore.txt | 9 kuukautta sitten | |
README.md | 9 kuukautta sitten |
Индивидуальное задание (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<DateTime> Dates = new List<DateTime>
{
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<DateTime> Dates = new List<DateTime>
{
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<DateTime> 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<string, int> month1 = new Dictionary<string, int>();
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;
}