C++.Манипуляции с датами.
Подскажите пожалуйста алгоритм или какими правильно функциями нужно пользоваться для того чтобы вычислить сколько прошло лет, месяцев, дней, годов, секунд до сегодняшней даты. Например с 01.01.1990 00:00:00 до сейчас.
Подскажите пожалуйста алгоритм или какими правильно функциями нужно пользоваться для того чтобы вычислить сколько прошло лет, месяцев, дней, годов, секунд до сегодняшней даты. Например с 01.01.1990 00:00:00 до сейчас.
Посмотрите здесь, в стандарте ф-ций по работе с временем не так много:
http://www.cplusplus.com/reference/ctime/
"Например с 01.01.1990 00:00:00 до сейчас. "
Не знаю, что такое 01.01.1990, но переводите все даты в UTC/GMT (если они локальные) , после это считайте своим собственным кодом. Иначе можно насчитать какие-нибудь лишние 13 дней при переходе со старого на новый стиль (это было намного раньше 1990г, но формальную логику, надеюсь, уловили) .
И секунды из difftime в дни, месяцы и тд даже не пытайтесь конвертировать, от самих дат пляшите.
PS. Если задача реальная, а не учебная, то можно заглянуть в boost.
http://www.boost.org/doc/libs/1_56_0/doc/html/date_time/gregorian.html#date_time.gregorian.date_duration
struct tm
Получить текущие день, месяц, год, час, минуту, секунду (это с помощью функции) и рассчитать (это алгоритм).