WinMain » 14 окт 2007, 15:07
Принцип математических операций с датой и временем состоит в том, чтобы сначала преобразовать дату и время в некое число, соответствующее числу дней (секунд или микросекунд), прошедших с определённого момента. Потом с этим числом выполняются нужные математические операции, а затем результат преобразуется снова в дату и время. Если взять за основу величину VariantTime, то это число типа double, где целая часть обозначает количество дней, прошедших (если я не ошибаюсь) с 1 января 1900 года. Дробная часть обозначает текущую часть суток. Т.е. 0.5 означает 12:00 по полудню, 0.75 - соответственно 18:00, и т.д. Для преобразования значений даты и времени в число и обратно есть функции SystemTimeToVariantTime() и VariantTimeToSystemTime().
Класс COleDateTime реализован на этих функциях.
Принцип математических операций с датой и временем состоит в том, чтобы сначала преобразовать дату и время в некое число, соответствующее числу дней (секунд или микросекунд), прошедших с определённого момента. Потом с этим числом выполняются нужные математические операции, а затем результат преобразуется снова в дату и время. Если взять за основу величину VariantTime, то это число типа double, где целая часть обозначает количество дней, прошедших (если я не ошибаюсь) с 1 января 1900 года. Дробная часть обозначает текущую часть суток. Т.е. 0.5 означает 12:00 по полудню, 0.75 - соответственно 18:00, и т.д. Для преобразования значений даты и времени в число и обратно есть функции [b]SystemTimeToVariantTime()[/b] и [b]VariantTimeToSystemTime()[/b].
Класс [b]COleDateTime[/b] реализован на этих функциях.