База Знаний: Функции Calc. Финансовые системы дат
В те дни, когда компьютеры ещё не стали широко распространены, были разработаны различные системы для более простого ручного вычисления даты. Некоторые из них продолжают использоваться, и доступны в Calc, особенно в финансовых функциях. Это, к сожалению, делает сегодня жизнь немного сложнее.
Одна из проблем здесь заключается в том, чтобы определить количество дней между двумя учётными датами, date1 и date2 (date2 после date1), соответственно day1, month1, year1 и day2, month2, year2, согласно базовым вычислениям определяются следующим образом:
0: | Американский метод (NASD), 12 месяцев 30 по дней в каждом (30US/360)
NASD была предшественником FINRA (оба — американские учреждения). Предполагается, что каждый месяц имеет 30 дней, и общее количество дней в году — 360. В этой системе:
|
---|---|
1: | Фактическое число дней в месяцах, точное число дней в году
Эта система — просто нормальный календарь; 28 дней в феврале и 365 дней в году, или в високосном году — 29 дней в феврале и 366 дней в году. Результат — DAYS(date2; date1). |
2: | Фактическое число дней в месяце, год имеет 360 дней
Целые года рассчитываются как по 360 дней каждый, и фактические дни в остающейся части года добавляются. |
3: | Фактическое число дней в месяце, год имеет 365 дней
Целые года рассчитываются как по 365 дней каждый, и фактические дни в остающейся части года добавляются. |
4: | Европейский метод, 12 месяцев по 30 дней каждый (30E/360)
Предполагается, что каждый месяц имеет 30 дней, и общее количество дней в году — 360. Если или day1 или day2 — 31, они изменяются на 30. Каждый месяц, как теперь предполагают, имеет 30 дней, и вычисляют результат. Отметьте, что даты февраля никогда не изменяются, потому что не бывает 31 февраля. |
Используются и другие финансовые системы дат, но они не были реализованы в Excel или в Calc.
Другая проблема заключается в определении даты, которая отстоит от другой даты на несколько месяцев или даже лет (до или после). Это важно например в функции COUPDAYBS.
Правильным видится следующее — если первоначальная дата последний день месяца, то новая дата также последний день месяца, в противном случае используется тот же день в месяце (или ближайшей по возможности). Таким образом:
- За 6 месяцев до 2008-09-15 — 2008-03-15;
- За 6 месяцев до 2008-08-31 — 2008-2-29 (високосный год);
- За 6 месяцев до 2008-2-29 — 2007-08-31;
- За 6 месяцев до 2007-08-29 — 2007-2-28 (не високосный год);
- за 1 год до 2009-02-28 — 2008-02-29.
InfraOffice.pro 3.1.x