211 lines
14 KiB
C#
211 lines
14 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Windows.Forms;
|
||
using System.IO;
|
||
using System.Security.Cryptography.X509Certificates;
|
||
|
||
namespace Сalendar
|
||
{
|
||
public partial class Form1 : Form
|
||
{
|
||
public Form1()
|
||
{
|
||
InitializeComponent();
|
||
if (File.Exists("date.dat")) //Заполнение событий из файла (Если существует)
|
||
{
|
||
listBox1.Items.Clear(); // очистка списка перед заполнением.
|
||
using (System.IO.StreamReader sr = new System.IO.StreamReader("date.dat")) // Чтение событий из файла и добавление их в список.
|
||
{
|
||
while (!sr.EndOfStream)
|
||
{
|
||
listBox1.Items.Add(sr.ReadLine());
|
||
}
|
||
}
|
||
}
|
||
}
|
||
List<Events> ev = new List<Events>(); //Создание списка класса Events
|
||
private void timer1_Tick(object sender, EventArgs e) //Timer для ввывода текущей даты и времени.
|
||
{
|
||
label3.Text = DateTime.Now.ToString("dd.MM.yyyy"); //Вывод текущей полной даты
|
||
label4.Text = DateTime.Now.ToString("HH:mm:ss"); //Вывод времени
|
||
if (DateTime.Now.DayOfWeek.ToString() == "Monday") //Условия для переводы текущего дня недели
|
||
{
|
||
label7.Text = "Понедельник";
|
||
}
|
||
else if (DateTime.Now.DayOfWeek.ToString() == "Tuesday")
|
||
{
|
||
label7.Text = "Вторник";
|
||
}
|
||
else if (DateTime.Now.DayOfWeek.ToString() == "Wednesday")
|
||
{
|
||
label7.Text = "Среда";
|
||
}
|
||
else if (DateTime.Now.DayOfWeek.ToString() == "Thursday")
|
||
{
|
||
label7.Text = "Четверг";
|
||
}
|
||
else if (DateTime.Now.DayOfWeek.ToString() == "Friday")
|
||
{
|
||
label7.Text = "Пятница";
|
||
}
|
||
else if (DateTime.Now.DayOfWeek.ToString() == "Saturday")
|
||
{
|
||
label7.Text = "Суббота";
|
||
}
|
||
else
|
||
{
|
||
label7.Text = "Воскресенье";
|
||
}
|
||
if (radioButton1.Checked) //Проверка выбора праздника и отключение не нужных элементов интерфейса
|
||
{
|
||
label8.Visible = false;
|
||
dateTimePicker1.Visible = false;
|
||
dateTimePicker2.Visible = false;
|
||
}
|
||
else //Включение интерфейса
|
||
{
|
||
label8.Visible = true;
|
||
dateTimePicker1.Visible = true;
|
||
dateTimePicker2.Visible = true;
|
||
}
|
||
if (checkBox1.Checked) //Смена имение кнопки взавизимости от отметки на редактирование события
|
||
{
|
||
button1.Text = "Изменить";
|
||
}
|
||
else
|
||
{
|
||
button1.Text = "Добавить";
|
||
}
|
||
}
|
||
|
||
private void button1_Click(object sender, EventArgs e) //Метод для записи события
|
||
{
|
||
if (checkBox1.Checked == false) // Условия для проверки отметки редактирования
|
||
{
|
||
label9.Text = ""; //очистка окна ошибки
|
||
if (radioButton1.Checked) //Условие для добавления праздников
|
||
{
|
||
ev.Add(new Events(textBox1.Text, monthCalendar1.SelectionStart.ToString("dd.MM.yyyy"), monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy"), "", "")); //Запись в список класса Events названия события и диапазона даты события
|
||
|
||
textBox1.Text = ""; //Очистка текстового поля
|
||
if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") == monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy")) // Условия для проверки указан был диапазон или единственная дата, для вывода в окно списка.
|
||
{
|
||
listBox1.Items.Add($"Праздник: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()}, на весь день");
|
||
}
|
||
else
|
||
{
|
||
listBox1.Items.Add($"Праздник: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()} по {ev.Last().getEnd_Date()}, на весь день");
|
||
}
|
||
}
|
||
if (radioButton2.Checked) //Условие для добавление напоминания
|
||
{
|
||
ev.Add(new Events(textBox1.Text, monthCalendar1.SelectionStart.ToString("dd.MM.yyyy"), monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy"), dateTimePicker1.Value.ToString("HH:mm"), dateTimePicker2.Value.ToString("HH:mm"))); //Запись в список класса Events названия события и диапазона даты события
|
||
|
||
textBox1.Text = ""; //Очистка текстового поля
|
||
if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") == monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() == dateTimePicker2.Value.ToString()) // Условия для проверки указан был диапазон или единственная дата, а также проверка указания времени для вывода в окно списка.
|
||
{
|
||
listBox1.Items.Add($"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()}, c {ev.Last().getTime_Start()} и на весь день");
|
||
}
|
||
else if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") != monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() == dateTimePicker2.Value.ToString())
|
||
{
|
||
listBox1.Items.Add($"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()} по {ev.Last().getEnd_Date()}, c {{ev.Last().getTime_Start()}} и на весь день");
|
||
}
|
||
else if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") == monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() != dateTimePicker2.Value.ToString())
|
||
{
|
||
listBox1.Items.Add($"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()}, c {ev.Last().getTime_Start()} по {ev.Last().getTime_End()}");
|
||
}
|
||
else if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") != monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() != dateTimePicker2.Value.ToString())
|
||
{
|
||
listBox1.Items.Add($"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()} по {ev.Last().getEnd_Date()}, c {ev.Last().getTime_Start()} по {ev.Last().getTime_End()}");
|
||
}
|
||
}
|
||
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("date.dat")) //Создание файла и записи в него сохранненых событий
|
||
{
|
||
for (int l = 0; l < listBox1.Items.Count; l++)//цикл для прохождения по списку и записи списка в файл.
|
||
sw.WriteLine(listBox1.Items[l].ToString());
|
||
}
|
||
}
|
||
else
|
||
{
|
||
int i = listBox1.SelectedIndex; //запись индекса элемента списка который будет отредактирован
|
||
label9.Text = ""; //очистка ошибочного окна
|
||
if (i < 0) //проверка на наличие выделенного элемента
|
||
{
|
||
label9.Text = "Выберите соботие из списка!"; //ввыод ошибки пользователю
|
||
label9.ForeColor = System.Drawing.Color.Red; // Выделение красным цветом сообщения об ошибке
|
||
}
|
||
else
|
||
{
|
||
listBox1.Items.RemoveAt(i); //удаление из списка события для дальнейшей его перезаписи.
|
||
if (radioButton1.Checked) //проверка выбора праздника
|
||
{
|
||
ev.Add(new Events(textBox1.Text, monthCalendar1.SelectionStart.ToString("dd.MM.yyyy"), monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy"), "", "")); //Запись в список класса Events названия события и диапазона даты события
|
||
|
||
textBox1.Text = ""; //Очистка текстового поля
|
||
if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") == monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy")) // Условия для проверки указан был диапазон или единственная дата, для вывода в окно списка.
|
||
{
|
||
listBox1.Items.Insert(i, $"Праздник: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()}, на весь день");
|
||
}
|
||
else
|
||
{
|
||
listBox1.Items.Insert(i, $"Праздник: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()} по {ev.Last().getEnd_Date()}, на весь день");
|
||
}
|
||
}
|
||
if (radioButton2.Checked) //Условие для добавления праздников
|
||
{
|
||
ev.Add(new Events(textBox1.Text, monthCalendar1.SelectionStart.ToString("dd.MM.yyyy"), monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy"), dateTimePicker1.Value.ToString("HH:mm"), dateTimePicker2.Value.ToString("HH:mm"))); //Запись в список класса Events названия события и диапазона даты события
|
||
|
||
textBox1.Text = ""; //Очистка текстового поля
|
||
if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") == monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() == dateTimePicker2.Value.ToString()) //Условия для проверки указан был диапазон или единственная дата, а также проверка указания времени для вывода в окно списка.
|
||
{
|
||
listBox1.Items.Insert(i, $"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()}, c {ev.Last().getTime_Start()} и на весь день");
|
||
}
|
||
else if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") != monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() == dateTimePicker2.Value.ToString())
|
||
{
|
||
listBox1.Items.Insert(i, $"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()} по {ev.Last().getEnd_Date()}, c {{ev.Last().getTime_Start()}} и на весь день");
|
||
}
|
||
else if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") == monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() != dateTimePicker2.Value.ToString())
|
||
{
|
||
listBox1.Items.Insert(i, $"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()}, c {ev.Last().getTime_Start()} по {ev.Last().getTime_End()}");
|
||
}
|
||
else if (monthCalendar1.SelectionStart.ToString("dd.MM.yyyy") != monthCalendar1.SelectionEnd.ToString("dd.MM.yyyy") && dateTimePicker1.Value.ToString() != dateTimePicker2.Value.ToString())
|
||
{
|
||
listBox1.Items.Insert(i, $"Напоминание: {ev.Last().getEventName()}, начало: {ev.Last().getStart_Date()} по {ev.Last().getEnd_Date()}, c {ev.Last().getTime_Start()} по {ev.Last().getTime_End()}");
|
||
}
|
||
}
|
||
}
|
||
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("date.dat")) // перезапись файла с сохраненными событиями
|
||
{
|
||
for (int l = 0; l < listBox1.Items.Count; l++)//цикл для прохождения по списку и записи списка в файл.
|
||
sw.WriteLine(listBox1.Items[l].ToString());
|
||
}
|
||
}
|
||
}
|
||
|
||
private void button2_Click(object sender, EventArgs e) //Кнопка для очистки списка заданий
|
||
{
|
||
listBox1.Items.Remove(listBox1.SelectedItem);//удаляет выбранное событие из списка
|
||
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("date.dat")) // Перезапись файла с удаленным событием.
|
||
{
|
||
for (int l = 0; l < listBox1.Items.Count; l++)
|
||
sw.WriteLine(listBox1.Items[l].ToString());
|
||
}
|
||
if (listBox1.Items.Count == 0) //Если все события были удаленны, то удаляется файл.
|
||
{
|
||
System.IO.File.Delete("date.dat");
|
||
}
|
||
}
|
||
|
||
private void Form1_Load(object sender, EventArgs e)
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|