Witam. Jak w temacie. Mam dwie listy. W jednej przechowuję daty (LocalDate) a w drugiej minuty (Integer).
W jaki sposób przypisać do konkretnej daty konkretne minuty? Dodam, że minuty docelowo chcę aby były zsumowane i wyświetlone.
Efekt jaki chcę uzyskać to wyświetlenie danych w formacie:
Data - minuty.
public class Times {
private int hours;
private int minutes;
public Times(){}
public int getHours() {
return hours;
}
public void setHours(int hours) {
this.hours = hours;
}
public int getMinutes() {
return minutes;
}
public void setMinutes(int minutes) {
this.minutes = minutes;
}
public int addTimes(int resum){
resum += (hours * 60) + minutes;
return resum;
}
}
public class Dates {
static final int ADD_TIMES = 1;
static final int PRINT_DATE = 2;
static final int EXIT = 0;
List<LocalDate> dateList = new ArrayList<>();
List<Integer> minutesList = new ArrayList<>();
Times times = new Times();
Scanner sc = new Scanner(System.in);
int options = -1;
int resum = 0;
public void ControlLoop() {
while (options != EXIT) {
printOptions();
System.out.print("Wybierz opcję: ");
options = sc.nextInt();
sc.nextLine();
switch (options) {
case ADD_TIMES:
System.out.print("Podaj datę w formacie [dd-MM-yyyy]: ");
DateTimeFormatter datePattern = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String dateInput = sc.nextLine();
LocalDate createDate = LocalDate.parse(dateInput, datePattern);
dateList.add(createDate);
System.out.print("Podaj liczbę godzin: ");
times.setHours(sc.nextInt());
System.out.print("Podaj licznę minut: ");
times.setMinutes(sc.nextInt());
int add = times.addTimes(resum);
minutesList.add(add);
break;
case PRINT_DATE:
printAll();
break;
case EXIT:
System.out.println("PAPA!");
break;
default:
System.out.println("Nie ma takiej opcji!");
}
}
sc.close();
public void printOptions(){
System.out.println("Dostępne opcje:");
System.out.println("1-Dodaj godziny nadliczbowe.");
System.out.println("2-Wyświetl zapisane dane.");
System.out.println("0-Wyjdz z programu.");
}
}