Календарь версия 0.1

This commit is contained in:
2022-09-06 22:18:53 +03:00
parent 0fac5ede3a
commit cd98a04d26
43 changed files with 2147 additions and 3 deletions

210
Сalendar/Form1.cs Normal file
View File

@@ -0,0 +1,210 @@
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)
{
}
}
}