Files
Calendar/Сalendar/Form1.cs

211 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
{
}
}
}