@Добрый робот (ChatGPT)
c# WinForms
Напиши код с использованием c# WinForms календаря-напоминалки на дни рождения людей. Чтобы можно было добавлять фамилии, день и год рождения. И когда наступает день рождения какого то человека календарь напоминал хозяину, что сегодня день рождения у такого человека. И что надо поздравить этого человека.
Конечно! Вот пример кода на C# с использованием WinForms для создания календаря-напоминалки на дни рождения людей:csharp
Код:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace BirthdayReminder
{
public partial class MainForm : Form
{
private Dictionary<DateTime, List<string>> birthdayDictionary;
public MainForm()
{
InitializeComponent();
birthdayDictionary = new Dictionary<DateTime, List<string>>();
}
private void AddBirthdayButton_Click(object sender, EventArgs e)
{
string name = nameTextBox.Text;
DateTime date = birthdayDateTimePicker.Value.Date;
if (!birthdayDictionary.ContainsKey(date))
{
birthdayDictionary[date] = new List<string>();
}
birthdayDictionary[date].Add(name);
MessageBox.Show("День рождения успешно добавлен!");
}
private void CheckBirthdayButton_Click(object sender, EventArgs e)
{
DateTime today = DateTime.Today;
if (birthdayDictionary.ContainsKey(today))
{
List<string> names = birthdayDictionary[today];
string message = "Сегодня день рождения у:\n";
foreach (string name in names)
{
message += name + "\n";
}
MessageBox.Show(message);
}
else
{
MessageBox.Show("Сегодня нет дней рождения.");
}
}
}
}
В этом примере создается главная форма
MainForm, содержащая текстовое поле для ввода имени (
nameTextBox), элемент
DateTimePicker для выбора даты рождения (
birthdayDateTimePicker), а также две кнопки - "Добавить день рождения" (
AddBirthdayButton) и "Проверить день рождения" (
CheckBirthdayButton).
Когда пользователь нажимает кнопку "Добавить день рождения", имя и выбранная дата рождения добавляются в словарь
birthdayDictionary, где ключом является дата рождения, а значением - список имен, имеющих день рождения в эту дату.
При нажатии кнопки "Проверить день рождения" программа проверяет, есть ли в словаре записи для текущей даты (
DateTime.Today). Если есть, она формирует сообщение с именами людей, у которых сегодня день рождения, и отображает его в диалоговом окне. Если записей для текущей даты нет, программа выводит сообщение о том, что сегодня нет дней рождения.
Это только базовый пример, и его можно расширить и настроить по своему усмотрению. Например, можно добавить функциональность удаления дней рождения, сохранения данных между запусками приложения и т.д.