На этом шаге мы рассмотрим выполнение некоторых операций сложения над датами.
Теперь посмотрим, как работают некоторые методы работы с датами. На рисунке 1 показан вид формы с компонентами, а на рисунке 2 - результаты сложения дат. К первому слагаемому добавлялось построчно количество дней, месяцев и лет. Проверялись методы: Add(), AddDays(), AddMonths(), AddYears(). В примере ниже приведены тексты обработчиков событий этого приложения.
Рис.1. Сложение дат (форма в режиме конструктора)
Рис.2. Сложение дат (выполнение приложения)
Тексты обработчиков:
// Кнопка "Выход" private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Close(); } // Кнопка "Начать вычисления" private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { String^ s; // Метод Add()- добавляет интервал времени к данной дате // Интервал задается данными класса TimeSpan: // запускают один из его конструкторов, который // и задает добавку в днях к данному экземпляру даты // Здесь подсчитывается, какой день недели будет, если к // текущей дате добавить 36 дней System::DateTime today = System::DateTime::Now; //текущая дата System::TimeSpan duration( 36, 0, 0, 0 ); // Конструктор придает начальные значения членам класса: // задаются количество дней, часы, минуты, секунды. // Фактически это структура: // 1-й элемент "интервал времени в днях", // 2-й элемент - интервал времени в часах, и т. д. // Мы станем использовать интервал "количество дней" System::DateTime answer = today.Add( duration ); // Эта функция добавляет данные структуры duration // к данным структуры даты s = answer.ToString("dddd", DateTimeFormatInfo::CurrentInfo); // Вывод даты в строку с учетом региональных настроек listBox3->Items->Add(s); //запись результата в ListBox s=today.ToString("dd/MM/yyyy \'г\', dddd", DateTimeFormatInfo::CurrentInfo); listBox1->Items->Add(s); //запись 1-го слагаемого в ListBox s = duration.ToString(); listBox2->Items->Add(s); //запись 2-го слагаемого в ListBox //Проверка функции добавления дней к дате double d = 36; answer = today.AddDays( d ); s=answer.ToString("dddd", DateTimeFormatInfo::CurrentInfo); // Вывод даты в строку с учетом региональных настроек listBox3->Items->Add(s); //запись результата в ListBox s = today.ToString("dd/MM/yyyy \'г\', dddd", DateTimeFormatInfo::CurrentInfo); listBox1->Items->Add(s); //запись 1-го слагаемого в ListBox s = d.ToString(); listBox2->Items->Add(s); //запись 2-го слагаемого в ListBox //Проверка функции добавления месяцев к дате int dl = 36; answer = today.AddMonths( dl ); s = answer.ToString("dddd", DateTimeFormatInfo::CurrentInfo); // Вывод даты в строку с учетом региональных настроек listBox3->Items->Add(s); //запись результата в ListBox s = today.ToString("dd/MM/yyyy \'г\', dddd", DateTimeFormatInfo::CurrentInfo); listBox1->Items->Add(s); //запись 1-го слагаемого в ListBox s = dl.ToString(); listBox2->Items->Add(s); //запись 2-го слагаемого в ListBox //Проверка функции добавления лет к дате int d2 = 36; answer = today.AddYears( d2 ); s = answer.ToString("dddd", DateTimeFormatInfo::CurrentInfo); // Вывод даты в строку с учетом региональных настроек listBox3->Items->Add(s); //запись результата в ListBox s = today.ToString ("dd/MM/yyyy \'г\', dddd", DateTimeFormatInfo::CurrentInfo); listBox1->Items->Add(s); //запись 1-го слагаемого в ListBox s = d2.ToString(); listBox2->Items->Add(s); //запись 2-го слагаемого в ListBox }
На следующем шаге мы рассмотрим компонент TabControl.