Мне интересно, существует ли стандартное или "нормальное" средство интерпретации конечных точек данных интервала времени в отношении инклюзивности/исключительности значения, определяющего конечную точку. Обратите внимание, что я спрашиваю, что такое стандартное (или наиболее распространенное) соглашение (если оно есть), а не для диссертации по вашим личным предпочтениям. Если вы действительно хотите предоставить диссертацию, приложите ее к ссылке на опубликованный стандарт или стандартный текст по этому вопросу. Открытые стандарты (которые мне не нужно платить за чтение) являются очень предпочтительными, если они не имеют фундаментальных недостатков:).
Конечно, существует 4 возможности для временного интервала от A до B:
- (A, B). Оба конца являются эксклюзивными.
- [A, B] - Оба конца включены.
- [A, B) - запуск включен, а end - эксклюзивным
- (A, B) - Исходный запуск и завершение включено
Каждый из них имеет разные характеристики (как я вижу, не стесняйтесь указать больше)
В соглашении [A, B] было бы кажущееся неудобным свойство, что B содержится с инволюцией [A, B], а также [B, C]. Это особенно неудобно, если B предназначен для представления границы полуночи, и вы пытаетесь определить, в какой день он, например, попадает. Кроме того, это означает, что продолжительность интервала немного раздражает для вычисления, поскольку [A, B], где A = B должно иметь длину 1 и, следовательно, продолжительность [A, B] равна (B - A) + 1
Аналогично, соглашение (A, B) было бы затруднено тем, что B не входит ни в ни (A, B), ни (B, C)... продолжая аналогию с дневными границами, полночь не будет частью ни дня. Это также логически неудобно, потому что [A, B], где A = B - нечувствительный интервал с длительностью меньше нуля, , но изменение A и B не делает его допустимым интервалом.
Поэтому я думаю, что хочу либо [A, B], либо (A, B], и я не могу понять, как решить между ними.
Итак, если у кого-то есть ссылка на документ стандартов, ссылка на стандартный текст или аналогичный, который разъясняет соглашение, которое было бы здорово. В качестве альтернативы, если вы можете связать различные документы стандартов и/или ссылки, которые более или менее полностью не согласны, тогда я могу просто выбрать тот, который, как представляется, обладает достаточными полномочиями для CMA и будет с ним выполнен:).
Наконец, я буду работать на Java, поэтому я особенно восприимчив к ответам, которые хорошо работают на Java.