README.md 10.0 KB

Индивидуальное задание №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<DateTime> Dates = new List<DateTime>
{
    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<DateTime> birthDates = new List<DateTime>
{
    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);
    }
}