Интервал галочки будет зависящим от Вашей области дисплея. Необходимо будет взять ширину графика (я предполагаю, что время находится на оси X), и ширина строки даты в выбранном шрифте во внимание для предложения хорошего масштаба.
Основной алгоритм пройдет примерно так.
- Просканируйте список дат для нахождения минимальных и максимальных значений.
- Разделите ширину графика на ширину строки даты (это может быть сделано однажды с результатом, сохраненным в переменной, если *оба* ширины являются постоянными). Этот шаг будет легче при использовании шрифта фиксированной ширины и формата даты MM-DD-YYYY. При использовании шрифта переменной ширины и формата даты, где Вы обстоятельно объясняете имя месяца, необходимо будет добавить дополнительное дополнение к строке, чтобы удостовериться, что каждая строка даты является той же шириной. Обратите внимание, что я сказал *дополнительный* дополнение. Даже при использовании фиксированного формата даты Вы захотите заполнить его по крайней мере одним пространством, чтобы не толпиться. Я назову это значение 'галочками', потому что это точно, сколько галочек на Вашей оси будет соответствовать на основе ширины Вашего графика.
- Вычислите, сколько дней между Вашими минимальными и максимальными датами (включительно). Как Вы делаете это будет зависеть, на каком языке Вы используете. Надо надеяться, у Вас есть хорошие реализации Даты и Календаря для возвращений. Я просто назову это значение 'днями'.
- Вычислите интервал галочки с формулой 'интервал = дни / (галочки - 1)'.
- Определите, какие дни падают в кредит интервалы путем добавления 'интервала' к минимальной дате, пока Вы не достигаете своей максимальной даты. Снова, это будет зависеть, на каком языке Вы используете.
ответ дан 4 December 2019 в 22:31
поделиться