Я пытаюсь разбить диапазон дат на равные интервалы. Вот код, который я использую. (Даты в формате ГГГГ-ММ-дд)
Integer frequency= 4;
Date startDate = '2020-02-27';
Date endDate = '2022-02-26';
String[] startD = string.valueOf(behadelPlan.Start_datum__c).split('-');
String[] endD = string.valueOf(behadelPlan.Einddatum__c).split('-');
//String[] dates;
Integer x = 0;
Integer startYear = Integer.valueof(startD[0]);
Integer endYear = Integer.valueof(endD[0]);
//while (x < 4) {
for (Integer i = startYear; i <= endYear; i++) {
Integer endMonth = i != endYear ? 11 : Integer.valueof(endD[1]) - 1;
Integer startMon = i == startYear ? Integer.valueof(startD[1]) - 1 : 0;
for (Integer j = startMon; j <= endMonth && x < frequency; j = j + 1) {
Integer month = j + 1;
String displayMonth;
if (month < 10) {
displayMonth = '0' + month;
} else {
displayMonth = String.valueOf(month);
}
List<string> slist = new string[]{string.valueOf(i), displayMonth, '01'};
string allstring = string.join(sList,'-');
System.debug(slist);
x+=1;
}
}
при запуске я получаю вывод как
2020-02-01
2020-03-01
2020-04-01
2020-05-01
Здесь В моем случае я хочу сгенерировать даты в равные (ежемесячные с днем начала дня) интервалы. В приведенном выше примере я должен получить итоговые даты в виде 4 равных интервалов (как я указал свою частоту в течение нескольких месяцев).
Пожалуйста, дайте мне знать, как мне этого добиться.
Вот простой пример.
startdate = '2020-01-01'
endDate = '2020-12-01'
frequency = 4
вывод должен быть
2020-01-01
2020-03-01
2020-06-01
2020-09-01