[C++] Automatyczna konwersja różnicy czasów UNIX na zwygłą datę

Witam.

Moim celem jest zrobienie programu konsolowego w c++ który będzie pobierał aktualny czas UNIX i odejmował od niego z góry ustaloną datę UNIX (to już zrobiłem). Problem tkwi w tym, że nie wiem jak zautomatyzować wewnątrz programu konwersję tej różnicy na ilość lat, miesięcy, dni, godzin i sekund z uwzględnieniem zmiany czasu z zimowego na letni i wice wersa. Chcę żeby zamiast ciągu liczb ukazywało się to w formacie x lat, x miesięcy, x dni, x godzin, x minut i x sekund.
Programuję w Codeblocks.

Proszę o pomoc.