Проблема с вашим кодом состоит в том, что на каждой из 7 итераций l oop вы назначаете подсказки для всех кнопок, поэтому вы делаете 7 назначений для каждой кнопки, всего 49 назначений, увеличивая дату после каждое назначение, так что вы достигнете этих неправильных дат. В результате вы видите значения, назначенные на последней итерации, которые явно неверны. Делайте 1 присваивание 1 кнопке в каждой итерации следующим образом:
DateTimeFormatter dateFormater = DateTimeFormatter.ofPattern("d");
ZoneId zone = ZoneId.of("Asia/Jakarta");
LocalDate date = LocalDate.now(zone);
int amount = 1;
int buttonCount = 7;
for (int i = 0; i < buttonCount; i++){
int buttonId = getResources().getIdentifier("hari_" + (i + 1), "id", getPackageName());
Button button = (Button) findViewById(buttonId);
button.setHint(date.format(dateFormater));
date = date.plusDays(amount);
}
С этой строкой:
int buttonId = getResources().getIdentifier("hari_" + (i + 1), "id", getPackageName());
вы получите целое число id
каждой кнопки и с этой строкой:
Button button = (Button) findViewById(buttonId);
вы получите переменную, ссылающуюся на кнопку.