Работа с датами: Найти людей, у которых день рождения на следующей неделе - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Пишу лабораторную и возникла довольно таки затруднительная ситуация: мне надо определить, случиться ли событие на следующей неделе от текущей даты. А вот так звучит само задание: "Найти людей, у которых день рождения на следующей неделе." Решается не очень сложно. Но я остановился на такой проблеме: а что, если день рождения будет числа так 27? Тогда мой код не сработает. Надо сделать проверку на месяцы. А я даже не могу представить, как это должно работать. Вот что я пока смог сделать:
public static void BirthDayNextWeek() //функция для поиска людей, у которых день рождения на следующей недели
        {
            int len = Notebook_main.Length; //получаем размер массива
            DateTime thisDay = DateTime.Today;  //получаем текущую дату
 
            Console.WriteLine("На следующей недели день рождения у:");
            string tmp = Convert.ToString(thisDay.DayOfWeek); //получаем название дня недели
 
            for (int i = 0; i < len; i++)
            {
                if (tmp == "Monday")
                {
                    if ((Notebook_main[i].birthday[0] >= Convert.ToInt32(thisDay.Day + 7)) & 
                        (Notebook_main[i].birthday[0] <= Convert.ToInt32(thisDay.Day + 14)))
                    {
                        Console.WriteLine(Notebook_main[i].FIO);
                    }
                }
                else if (tmp == "Tuesday")
                {
                    if ((Notebook_main[i].birthday[0] >= Convert.ToInt32(thisDay.Day + 6)) &
                        (Notebook_main[i].birthday[0] <= Convert.ToInt32(thisDay.Day + 13)))
                    {
                        Console.WriteLine(Notebook_main[i].FIO);
                    }
                }
            }
        }
Если надо, то вот класс, в котором хранятся данные.
public class record
    {
        public string FIO; //фамилия
        public int phone; //номер телефона
        public int[] birthday = new int[3]; //день рождения (дд.мм.гг)
    }

Решение задачи: «Работа с датами: Найти людей, у которых день рождения на следующей неделе»

textual
Листинг программы
private void button1_Click(object sender, EventArgs e)
        {
            string brs = string.Empty;
            //массив людишек
            string [] s = {"Алексей 20001126", "Мария 19700526", "Кристина 19920603"}; 
            DateTime today = DateTime.Now;
            for (int i=0;i<=s.Length-1;i++)
            {
                //выделяем из строки подстроку с датой
                string ss = s[i].Substring(s[i].Length-8); 
                //парсим дату рождения
                DateTime d = DateTime.ParseExact(ss, "yyyyMdd", null); 
                System.TimeSpan duration = new System.TimeSpan(7, 0, 0, 0);
                //прибавим к текущей дате 7 дней
                System.DateTime limdate = today.Add(duration);
                //шоб показать нормальный год рождения
                DateTime brtmp = new DateTime(today.Year, d.Month, d.Day); 
                if ((d.DayOfYear - limdate.DayOfYear) <= 7)
                    //выводим именинников с датами ДР
                    brs += s[i].Substring(0, s[i].Length - 8) + brtmp.ToShortDateString() + "\n"; 
            }
            button1.Text = brs;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы