Работа с датами: Найти людей, у которых день рождения на следующей неделе - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д