|
Программирование >> Элементы языков с и с++
Остановимся более подробно на вычитании дат. На рис. 11.98 показаны результаты вычитания разных дат и вид формы с компонентами, обеспечивающими эти операции. В листинге 11.19 приведены тексты обработчиков собьн тий этого приложения. * Вычитание дог Уменьшаемое lislBoxl i Пуск I Вычш-аемое listBox2 Выхоа читание дат Результат ! ШокЗ Пуск Уменьшаемое Вычитаемое Результат 061г200613:02:0. 0306.2006 22:15:00 185.U4700 1210 2006 642:00 1В5.14:47:00 , 09.04 200617:55.1 06.12.200613020 12.102006642:00 55042000 03.06.2006 22:15:0 155.04:20:00 . 0904 200617:551 Выход Рис. 11.98. Вычитание дат ? Листинг 11.19 private: System::Void buttonl Click(System::Object sender. System:: EventArgs e) this->Close(); . private: System::Void button2 Click(System::Object sender. System: : EventArgs e) String s; System::DateTime datel = System::DateTime( 2006, 6, 3, 22, 15, 0 ); System::DateTime date2 = System::DateTime( 2006, 12, 6, 13, 2, 0 ) ; /*Это один из конструкторов класса DateTime, инициализирующий экземпляр класса значениями (год, месяц, число, часы, минуты, секунда)/ System::DateTime dateS = System::DateTime( 2006, 10, 12, 8, 42, 0 ); I (шпоненты, создающие интерфейс между пользователем и приложением 435 lliiitl (разность) равна 185 дней, 14 часов, 47 минут. р/Класс TimeSpan задает интервал времен!. У него есть свои события и методы j. /stem: :TimeSpan diffl = date2.Subtract ( datel ) ; Ithis->listBoxl->Iteitis->Add (date2.ToString ()) ; I ihis->listBox2->Items->Add (datel. ToString ()); Ittb->listBox3->Items->Add(diffl .ToString ()) ; Iv/date4 получается 4/9/2006 17:55:00 I-rstem::DateTime date4 = date3. Subtract ( diffl ) ; ru.iS->listBoxl->Items->Add(date3.ToStringO ) ; -jiiS->listBox2->Items->Add (diffl.ToString 0 ) ; riis->listBox3->Items->Add (date4 . ToString ()) ; ,Vdiff2 (разность) равна 55 дней, 4 часа, 20 минут. ISystem::TimeSpan diff2 = date2 - date3; IiMs->listBoxl->Items->Add (date2. ToString ()) ; tjis->listBox2->Items->Add(date3.ToString()) ; iJiis->listBox3->Items->Add (diff2. ToString () ) ; I/( dates получается 4/9/1996 17:55:00 [. ntem::DateTime date5 = datel - diff2; *is->listBoxl->Items->Add(datel.ToStringO ) ; diis->listBox2->Items->Add(diff2.ToStringO ) ; s-:is->listBox3->Items->Add(date5.ToString()) ; I 1 Слоне ние дат Uc/игаемое Паск 2-е слагаемое Результат ШокЗ Вькоа 1 -е слагаемое Пуск 2е слагаемое Результат 08 03 2007г,>жгверг 08 03 2007 г. четверг 08 03.2007 г. четверг 08.03.2007 г. четверг 36 00 00 00 Вьжоа пятница пятница понедельник воскресенье Листинг 11.20 private: System::Void buttonl Click(System::Object sender. System: :EventArgs e) , this->Close(); } private: System::Void button2 Click(System::Object sender. System: :EventArgs e) String s; --------/ /♦Метод Add()- добавляет интервал времени к данной дате Интервал задается данными класса TimeSpan: запускают один из его конструкторов, который и задает добавку в днях к данному экземпляру даты*/ /*3десь подсчитывается, какой день недели будет, если к текущей дате добавить 36 дней*/ System::DateTime today = System::DateTime::Now; текущая дата System::TimeSpan duration( 36, 0, 0, 0 ); /*Конструктор придает начальные значения членам класса: задаются количество дней, часы, минуты, секунды. Фактически это структура: 1-й элемент интервал времени в днях , 2-й элемент - интервал времени в часах, и т. д. Мы станем использовать интервал количество дней */ System::DateTime answer = today.Add( duration ); Теперь посмотрим, как работают некоторые методы работы с датами. На рис. 11.99 показаны результаты сложения дат и вид формы с компонентами, обеспечивающими эти операции. К первому слагаемому добавлялось построчно количество дней, месяцев и лет. Проверялись методы: Add(, AddDays(), AddMonths(), AddYears(). В листинге 11.20 приведены тексты обработчиков событий этого приложения.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |