# Особенности работы с датами

Даты событий редактируются в диалоге редактирования событий и фактов.

Поддерживаются следующие подвиды даты:

- "Ранее", "Позднее", "Между" - конкретная, но неопределенная дата ("Родился после 1960, но до 1965");
- "Период до", "Период после", "Период между" - период дат длительного процесса ("Служил в армии с 1978 по 1980");
- "Около", "По расчету", "По оценке" - указание на различные виды неточных или относительных дат.
- "Точно" - точно известная дата;

Даты можно задавать в неполной форме, т.е. одна или несколько частей могут отсутствовать. Вплоть до того, что может быть задан только день, только месяц или только год. И любые их комбинации.

Для даты можно задать тип календаря, в котором исчисляется дата. Поддерживаются календари: Григорианский, Юлианский, Еврейский, Французский, Римский. Также можно задавать дату "нашей эры" (признак BC выключен) или "до нашей эры" (признак BC включен). Перевод даты из одного календаря в другой поддерживается только в плагине "Календарь".

Хранение дат, отображение и обработка - эти три операции над датами в программе полностью отделены друг от друга, т.к. каждый вид операции имеет свою специфику.

- Хранение дат осуществляется строго в специальном формате GEDCOM, благодаря чему и достигается возможность задавать неполные даты в любой форме.
- Отображение переводит внутренний формат хранения даты в строковый вид, включающий специальные символы (если они включены в настройках). К примеру, дата "Около января 1701" в столбцах основных списков будет отображена либо как "__.01.1701" (спец.символы выключены), либо "~ __.01.1701" (спец.символы включены). Диапазон "Между 01.01.1700 и 20.01.1700" будет отображаться как "01.01.1700 - 20.01.1700". Дата "Период до 10.10.1800" будет отображаться как "< 10.10.1800" (спец.символы включены).
- Для нужд обработки дат, например вычислений, либо при сортировке столбцов записей, даты автоматически переводятся в специальный внутренний формат (вычисляется "юлианская дата"), позволяющий обрабатывать и сравнивать между собой неполные даты в любых календарях.

При отображении дат в столбцах различных списков неизвестные составляющие заменяются символом "_". Некоторые пользователи предлагали их не выводить. Однако их вывод нужен для точной и наглядной идентификации - какие части в дате есть, а что неизвестно. А также для единого представления.

Фильтрация персональных записей по датам рождения и смерти также позволяет использовать неполные даты в качестве границ диапазона. Т.е. можно выбрать все записи родившихся между 1700 и 1710 годами, без указания конкретных дней и месяцев.

Для понимания специфики работы с датами и событиями нужно ввести оба понятия, как они обрабатываются в программе. Дата события - это исключительно некоторое сочетание известного дня, месяца и года в пределах какого-то календаря. Дата может быть пустой или неполной, точной, относительной или диапазоном. Дата не содержит в себе какой-либо другой (не календарной) информации. Событие - это запись определенного факта из жизни человека, которая включает в себя вид события, дату, место возникновения, описания и дополнительную информацию. В персональной записи может быть, к примеру, создана запись события смерти человека с пустой датой. Таким образом, это будет обозначать, что человек уже умер, но когда - неизвестно. Поэтому обработка людей, у которых событие смерти есть, будет отличаться от обработки тех, у кого событие смерти не создано.

В некоторых программах события рождения и смерти не обрабатываются списком, как в программе GEDKeeper. В таких случаях обычно есть флажок "Умер" и поля для ввода даты и места. В программе GEDKeeper все события полностью равноправны и их число не ограничивается. Для нужд исследований в одной персональной записи может быть от одной до нескольких записей событий рождения и смерти - для хранения различных вариантов. Это сделано для того, чтобы иметь большую гибкость и не выносить варианты в текстовые заметки или не указывать варианты диапазоном лет. Кроме того, такой подход позволяет снабдить каждый вариант события своими указаниями на источник информации и видеть их все. Когда исследователь получает точную информацию - он может как удалить ненужный вариант, так и пометить его как неправильный - чтобы в дальнейшем знать, что такая информация, пусть и неправильная, уже была обработана и опровергнута.

Специфика отображения количества лет в столбцах "Возраст" и "Продолжительность жизни" следующая:

- Поле продолжительности жизни считается строго как разница дат рождения и смерти, поэтому если одной из этих дат нет, ничего не считается.
- Поле возраст содержит разницу дат между событиями рождения и смерти (если событие с датой смерти есть - тогда это возраст на момент смерти). Если событие смерти есть, но дата не задана - тогда возраст не считается. Если события (не даты, а именно записи события) смерти нет совсем - тогда берется текущая дата. Поэтому, если человек родился в 1700 году, и у него вовсе не задано событие смерти, у него в столбце "Возраст" на 2015 год вполне может выводится цифра в 315 лет. Чтобы этого не происходило, для точно умерших людей, но без известной даты, нужно создавать запись события смерти с пустой датой.

Для упрощения обработки больших массивов персональных записей, введенных например из ревизской сказки, где было много людей без известной даты смерти, есть специальная функция проверки базы данных в блоке инструментов (меню "Сервис\Инструменты...", закладка "Проверка базы данных"). Эта функция проверяет все персональные записи и если у человека нет записи события смерти, а возраст превышает максимально известный и научно проверенный предел человеческой жизни - тогда предлагается зафиксировать событие смерти автоматически (нужно пометить такое уведомление и нажать кнопку "Исправить"). Предел возраста в программе задан в 122 года (см. "Список старейших людей в мире"). Нужно дополнительно уточнить, что функция проверки и исправления такой проблемы, не устанавливает дату смерти человека на максимальное значение - только создается пустое событие смерти, как признак.

Внимание: при использовании плагина Линия времени колонка возраста показывает значение, расчетное к заданному году.

Также смотрите: События.