.NET 4.x Нужно написать программу В текстовом файле написан список дат (праздники) с полным названием - C#

Узнай цену своей работы

Формулировка задачи:

В текстовом файле написан список дат (праздники) с полным названием. Формат такой: 01.01 Новый год 23.02 День защитника отечества 08.03 Международный женский день Программа должна считывать данные из этого файла и показывать, какой праздник будет следующим (относительно текущей даты), выводить дату и название праздника.

Решение задачи: «.NET 4.x Нужно написать программу В текстовом файле написан список дат (праздники) с полным названием»

textual
Листинг программы
public partial class Form1 : Form
    {
        List<Events> eventList = new List<Events>();
 
        public Form1()
        {
            InitializeComponent();
            dateTimePicker1.Value = new DateTime(2007, 1, 1);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DateTime end = new DateTime(2013,12,10);
            for (DateTime i = new DateTime(2007,1,1); i < end; i = i.AddDays(1))
            {
                if (!(i.DayOfWeek.ToString() == "Saturday" || i.DayOfWeek.ToString() == "Sunday"))
                {
                    MessageBox.Show(i.Date.ToString()+". "+ i.DayOfWeek.ToString());
                }
            }
 
        }
        #region dateTimePicker
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
 
            monthCalendar1.SelectionStart = dateTimePicker1.Value;
            monthCalendar2.SelectionStart = monthCalendar1.SelectionStart.AddMonths(1);
            monthCalendar3.SelectionStart = monthCalendar2.SelectionStart.AddMonths(1);
            monthCalendar4.SelectionStart = monthCalendar3.SelectionStart.AddMonths(1);
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            dateTimePicker1.Value = dateTimePicker1.Value.AddMonths(4);
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            dateTimePicker1.Value = dateTimePicker1.Value.AddMonths(-4);
        }
        #endregion
 
        #region open&read&parse file
        void readfile(string _filePath)
        {
            if (File.Exists(_filePath))
            {
                string line;
                StreamReader file = null;
                try
                {
                    file = new StreamReader(_filePath, Encoding.GetEncoding(1251));
                    while (((line = file.ReadLine()) != null))
                    {
                        if (line != "")
                        {//Уберите комментарии и получите праздники только в будние дни
                            //if (!(DateTime.Parse(line.Split('|')[0]).DayOfWeek.ToString() == "Saturday" || DateTime.Parse(line.Split('|')[0]).DayOfWeek.ToString() == "Sunday" ))
                                eventList.Add(new Events(DateTime.Parse(line.Split('|')[0]), line.Split('|')[1]));
                        }
                    }
                    //print events
                    var items = from Events in eventList
                                orderby Events.time
                                select Events;
 
 
                    //clear list and fill the listbox
                    listBox1.Items.Clear();
                    groupBox2.Text = "List of events. Total events: "+items.Count();
                    foreach (var item in items)
                    {
                        listBox1.Items.Add(item.time.ToShortDateString() +" "+item.description);
                    }
                }
                finally
                {
                    if (file != null)
                        file.Close();
                }
            } 
        }
 
        private void openEventsFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "Text|*.txt|All|*.*";
            openFileDialog1.Title = "Please select an .txt file.";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                readfile(openFileDialog1.FileName);
            }
        }
        #endregion
 
        private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            getNearestEvents(e.Start);
            try
            {
                var ev = (from Events in eventList
                          where Events.time == e.Start
                          select Events).First();
 
 
                label1.Text = ev.time.ToShortDateString();
                richTextBox1.Text = ev.description;
 
            }
            catch (InvalidOperationException ex)
            {
                richTextBox1.Text = null;
                label1.Text = "";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        void getNearestEvents(DateTime dt)
        {
            try
            {
                var nearestEvents = from Events in eventList
                                    where Events.time > dt
                                    orderby Events.time
                                    select Events;
 
                listBox2.Items.Clear();
                label2.Text = dt.ToShortDateString();
                foreach (var item in nearestEvents)
                {
                    listBox2.Items.Add(item.time.ToShortDateString() + " " + item.description);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void listBox2_DoubleClick(object sender, EventArgs e)
        {
            richTextBox1.Text = (sender as ListBox).Text.ToString();
        }
 
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы