Вам нужна хотя бы одна дата, чтобы создать интервал.Я использую одно поле даты для start_date и интервал, который может быть числом секунд или фиксированным интервалом, например ENUM (день, месяц, год).Это зависит от данных, с которыми вы работаете.
Для ДАТА поддерживаемый диапазон от '1000-01-01 00:00:00' до '9999-12-31 23:59:59 ', но это означает, что, хотя более ранние значения могут работать, нет никакой гарантии.Я вижу, что вы можете без проблем использовать 0001-01-01.
ДЛЯ значений BC. Я не знаю, существует ли стандарт, но я видел системы, в которых указана собственная начальная точка,Допустим, ваши данные будут до нашей эры, но не дольше 1000 г. до н.Вы можете указать свой 0 год как -2000, применить разницу (год-2000) ко всем датам и, возможно, даже создать класс Date, который применяется только к вашему проекту.Вы можете назначить время как целое число и выполнять все операции с ним без проблем, особенно если вы не работаете с днями или месяцами детализации.Текущие календари не являются надежными для работы в прошлом, так как точность даты была неверно рассчитана на протяжении веков и исправлена некоторыми исправлениями, которые могут сделать вычисления довольно трудными.формат, так как это позволит вам выполнять быстрые операции DATE непосредственно в mySql.
Обновление для расчета високосных годов в вашем классе:
if year modulo 400 is 0
then is_leap_year
else if year modulo 100 is 0
then not_leap_year
else if year modulo 4 is 0
then is_leap_year
else
not_leap_year