Вычислить количество месяцев

  • Автор темы Автор темы Artem
  • Дата начала Дата начала

Artem

Завсегдатай
Вычислить количество месяцев

Не делал ли кто такой алгоритм - вычислить количество месяцев между двумя датами, а то у меня что-то громоздкое получается.
 
В простейшем случае, для дат одного года достаточно взять разность номеров месяцев. Для дат из разных лет надо добавить 12 месяцев на каждый год разницы. Т.е. (ГОД(д2)-ГОД(д1))*12+(МЕС(д2)-МЕС(д1)). Если нужно что-то другое, то хорошо бы узнать что именно
 
Да, Артем, вопрос абстрактный. Например сколько месяцев между 28 февраля и 1 марта или между 31 января и 28 февраля?
 
Спасибо всем

Задача стоит в написании что-то вроде регистратуры для ЛПУ, где требуется определять для граждан старше 3 лет возраст в годах, а для маленьких - в годах и месяцах. В целом меня получилось:

ФУНКЦИЯ СТРОКА: ФормализованныйВозраст(ДАТА:дата_рожд,дата_тек)

др_тек_года = ДАТА(ЧИСЛО(дата_рожд),МЕС(дата_рожд),ГОД(дата_тек))
кол_лет = ГОД(ДАТА_ТЕК)-ГОД(дата_рожд)
ЕСЛИ кол_лет>=3 ТО
ЕСЛИ др_тек_года <= ДАТА_ТЕК ТО
РЕЗУЛЬТАТ = СТР(кол_лет)
ИНАЧЕ
РЕЗУЛЬТАТ = СТР(кол_лет -1)
КОНЕЦ_ЕСЛИ
ИНАЧЕ
ЕСЛИ ГОД(дата_рожд)=ГОД(ДАТА_ТЕК) ТО
клм = МЕС(ДАТА_ТЕК)-МЕС(дата_рожд)
РЕЗУЛЬТАТ = СТР(клм)+" мес."
ИНАЧЕ
// клм = (ДАТА_ТЕК-дата_рожд)/365*12
клм_общ = 0
тек_зн_м = МЕС(дата_рожд)
ЦИКЛ ДЛЯ (и=дата_рожд,ДАТА_ТЕК)

ЕСЛИ МЕС(и)<>тек_зн_м ТО
клм_общ+=1
тек_зн_м = МЕС(и)
КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА
кол_лет = РУБ(клм_общ/12)
кол_мес = клм_общ-(кол_лет*12)
скока = ?(кол_лет =1,"год","года")
РЕЗУЛЬТАТ = ?(кол_лет <> 0,СТР(кол_лет)+" "+скока+" ","")+СТР(кол_мес)+" мес."//СТР(клм)+"мес, а годы"
КОНЕЦ_ЕСЛИ

КОНЕЦ_ЕСЛИ

КОНЕЦ_ФУНКЦИИ
 
Назад
Сверху