- import java.time.LocalTime;
- import java.util.*;
- public class Kalendarz {
- private ArrayList<Zdarzenie>[] kalendarz = new ArrayList[7];
- public Kalendarz() {
- for(int i = 0; i < kalendarz.length; i++) {
- kalendarz[i] = new ArrayList<>();
- }
- }
- public boolean dodajZdarzenie(int dzien, Zdarzenie zdarzenie) {
- if(sprawdzCzyZdarzenieIstnieje(dzien, zdarzenie.getCzasRozpoczecia()) == null) {
- kalendarz[dzien - 1].add(zdarzenie);
- return true;
- }
- else
- return false;
- }
- public boolean usunZdarzenie(int dzien, LocalTime czasRozpoczecia) {
- if(sprawdzCzyZdarzenieIstnieje(dzien, czasRozpoczecia) != null) {
- kalendarz[dzien - 1].remove(sprawdzCzyZdarzenieIstnieje(dzien, czasRozpoczecia));
- return true;
- }else
- return false;
- }
- public boolean modyfikujZdarzenie(int dzien, LocalTime czasRozpoczecia, Zdarzenie zdarzenie){ //modyfikuj konkretny obiekt w klasie zdarzenie
- Zdarzenie temp;
- if((temp = sprawdzCzyZdarzenieIstnieje(dzien, czasRozpoczecia)) != null){
- usunZdarzenie(dzien , czasRozpoczecia);
- if(dodajZdarzenie(dzien, zdarzenie)) {
- return true;
- }
- else {
- dodajZdarzenie(dzien, temp);
- return false;
- }
- } else {
- return false;
- }
- }
- public Zdarzenie sprawdzCzyZdarzenieIstnieje(int dzien, LocalTime czasRozpoczecia) { // to ma być w modyfikuj zdarzenie
- for(Zdarzenie zad: kalendarz[dzien - 1]) {
- if(zad.getCzasRozpoczecia().equals(czasRozpoczecia)) {
- return zad;
- }
- }
- return null;
- }
- public ArrayList<Zdarzenie> getDzien(int dzien) { // TU MÓWIŁ że get dzień ma być
- return kalendarz[dzien - 1];
- }
- }
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.util.Scanner;
- public class Main {
- static Scanner scanner = new Scanner(System.in);
- static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("H:m");
- public static void main(String[] args) {
- Kalendarz kalendarz = new Kalendarz();
- boolean info = true;
- do {
- System.out.println("KALENDARZ");
- opcje();
- switch (scanner.next()) {
- case "1":
- dodajZdarzenie(kalendarz);
- break;
- case "2":
- usunZdarzenie(kalendarz);
- break;
- case "3":
- modyfikujZdarzenie(kalendarz);
- break;
- case "4":
- wyswietlZdarzenie(kalendarz);
- break;
- case "5":
- info = false;
- break;
- default:
- System.out.println("Nie ma takiej opcji, spróbuj jeszcze raz:");
- break;
- }
- } while (info == true);
- }
- public static void opcje() {
- System.out.println("Dodaj zdarzenie - 1");
- System.out.println("Usuń zdarzenie - 2");
- System.out.println("Modyfikuj zdarzenie - 3");
- System.out.println("Wyświetl zdarzenie z danego dnia - 4");
- System.out.println("Wyjdź z kalendarza - 5");
- }
- public static void dniTygodnia() {
- System.out.println("Poniedziałek - 1");
- System.out.println("Wtorek - 2");
- System.out.println("Sroda - 3");
- System.out.println("Czwartek - 4");
- System.out.println("Piątek - 5");
- System.out.println("Sobota - 6");
- System.out.println("Niedziela - 7");
- }
- public static void dodajZdarzenie(Kalendarz kalendarz) {
- Scanner sc = new Scanner(System.in);
- int dzien;
- String czasRozpoczecia, czasZakonczenia, tresc;
- LocalTime terminRozpoczecia, terminZakonczenia;
- do {
- System.out.println("Wybierz dzień tygodnia do którego chcesz dodać zdarzenie za pomocą numerów: ");
- dniTygodnia();
- dzien = scanner.nextInt();
- } while(poprawnoscDnia(dzien) == false);
- System.out.println("Wpisz godzinę rozpoczęcia zdarzenia, podaj w foramcie:'Godzina:minuta' ");
- czasRozpoczecia = sc.nextLine();
- terminRozpoczecia = LocalTime.parse(czasRozpoczecia, formatter);
- do {
- System.out.println("Wpisz godzinę zakończenia zdarzenia, podaj w foramcie:'Godzina:minuta' ");
- czasZakonczenia = sc.nextLine();
- terminZakonczenia = LocalTime.parse(czasZakonczenia, formatter);
- if(terminZakonczenia.isAfter(terminRozpoczecia) == false)
- System.out.println("Termin zakończenia nie może występować przed terminem rozpoczęcia. Spróbuj ponownie");
- } while (terminZakonczenia.isAfter(terminRozpoczecia) == false);
- System.out.println("Podaj treść zdarzenia: ");
- tresc = sc.nextLine();
- Zdarzenie zdarzenie = new Zdarzenie(terminRozpoczecia, terminZakonczenia, tresc);
- if(kalendarz.dodajZdarzenie(dzien, zdarzenie) == true) {
- System.out.println("Zdarzenie zostało dodane");
- }
- else
- System.out.println("Istnieje już zdarzenie o tej godzinie, spróbuj ponownie:");
- }
- public static void usunZdarzenie(Kalendarz kalendarz) {
- Scanner sc = new Scanner(System.in);
- int dzien;
- String czasRozpoczecia;
- LocalTime terminRozpoczecia;
- do {
- System.out.println("Podaj dzień tygodnia z którego chcesz usunąć zdarzenie za pomocą liczby: ");
- dniTygodnia();
- dzien = scanner.nextInt();;
- } while(poprawnoscDnia(dzien) == false);
- System.out.println("Wybierz godzinę z której chcesz usunąć zdarzenie, podaj w formacie 'Godzina:minuta' ");
- czasRozpoczecia = sc.nextLine();
- terminRozpoczecia = LocalTime.parse(czasRozpoczecia, formatter);
- if(kalendarz.usunZdarzenie(dzien, terminRozpoczecia) == true) {
- System.out.println("Zdarzenie zostało usuniete");
- }
- else System.out.println("Termin nie był zajęty");
- }
- public static void modyfikujZdarzenie(Kalendarz kalendarz) {
- Scanner sc = new Scanner(System.in);
- int dzien;
- String czasRozpoczecia, czasZakonczenia, tresc;
- LocalTime terminRozpoczecia, terminRozpoczeciaNowego, terminZakonczenia;
- do {
- System.out.println("Podaj dzień tygodnia w którym chcesz zmodyfikować zdarzenie za pomocą liczby: ");
- dniTygodnia();
- dzien = scanner.nextInt();
- } while(poprawnoscDnia(dzien) == false);
- System.out.println("Wpisze godzinę zdarzenia do modyfikacji, podaj w formacie 'Godzina:minuta' ");
- czasRozpoczecia = sc.nextLine();
- terminRozpoczecia = LocalTime.parse(czasRozpoczecia, formatter);
- do {
- System.out.println("Wybierz nowa godzinę zakończenia zdarzenia, podaj w formacie 'Godzina:minuta' ");
- czasZakonczenia = sc.nextLine();
- terminZakonczenia = LocalTime.parse(czasZakonczenia, formatter);
- if(terminZakonczenia.isAfter(terminRozpoczecia) == false)
- System.out.println("Termin zakończenia nie może występować przed terminem rozpoczęcia. Spróbuj ponownie");
- } while (terminZakonczenia.isAfter(terminRozpoczecia) == false);
- System.out.println("Podaj nowa treść modyfikowanego zdarzenia: ");
- tresc = sc.nextLine();
- Zdarzenie zdarzenie = new Zdarzenie(terminRozpoczecia, terminZakonczenia, tresc);
- if(kalendarz.modyfikujZdarzenie(dzien, terminRozpoczecia, zdarzenie)) {
- System.out.println("Zdarzenie zostało zmodyfikowane");
- } else {
- System.out.println("Zdarzenie nie zostalo zmodyfikowane, nie ma zdarzenia o takiej godzine");
- }
- }
- public static void wyswietlZdarzenie(Kalendarz kalendarz) {
- int dzien;
- do {
- System.out.println("Podaj dzień tygodnia, z którego chcesz wyświetlić zdarzenia za pomocą liczby: ");
- dniTygodnia();
- dzien = scanner.nextInt();
- } while(poprawnoscDnia(dzien) == false);
- if(kalendarz.getDzien(dzien).size() == 0) {
- System.out.println("Brak zdarzeń do wyświetlenia w tym dniu");
- }
- for(Zdarzenie z: kalendarz.getDzien(dzien)) {
- System.out.println(z);
- }
- }
- public static boolean poprawnoscDnia(int dzien) {
- if(dzien > 7 || dzien < 1) {
- System.out.println("Nie ma takiego dnia, podaj ponownie");
- return false;
- } else
- return true;
- }
- }