Тысячи программистов уже задавались этим вопросом, поэтому следует учесть 2 вещи:
- прежде чем написать что-то стоит поискать готовую реализацию
- общие положения о дате можно найти тут: http://www.opennet.ru/man.shtml?topic=time&category=7&russian=2
Очевидная математическая модель времени - число секунд, прошедших от начала эпохи (складывать и вычитать целые числа просто). Если точность до секунд не требуется, можно использовать число дней или лет.
Таким образом для выполнения операции "2009-09-26 + 1 день" нужно:
* преобразовать операнды (символьные даты) в целые числа
* сложить операнды по правилам сложения целых чисел
* преобразовать результат сложения в дату
Алгоритм трансляции числа дней от начала эпохи в год, месяц, день и обратно был предложен в 1582 папой Григорием XIII http://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C