Facebook
From fsafsa, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 285
  1.  
  2. import java.time.LocalTime;
  3. import java.util.*;
  4.  
  5. public class Kalendarz {
  6.     private ArrayList<Zdarzenie>[] kalendarz = new ArrayList[7];
  7.  
  8.     public Kalendarz() {
  9.         for(int i = 0; i < kalendarz.length; i++) {
  10.             kalendarz[i] = new ArrayList<>();
  11.         }
  12.     }
  13.  
  14.     public boolean dodajZdarzenie(int dzien, Zdarzenie zdarzenie) {
  15.         if(sprawdzCzyZdarzenieIstnieje(dzien, zdarzenie.getCzasRozpoczecia()) == null) {
  16.             kalendarz[dzien - 1].add(zdarzenie);
  17.             return true;
  18.         }
  19.         else
  20.             return false;
  21.     }
  22.  
  23.     public boolean usunZdarzenie(int dzien, LocalTime czasRozpoczecia) {
  24.         if(sprawdzCzyZdarzenieIstnieje(dzien, czasRozpoczecia) != null) {
  25.             kalendarz[dzien - 1].remove(sprawdzCzyZdarzenieIstnieje(dzien, czasRozpoczecia));
  26.             return true;
  27.         }else
  28.             return false;
  29.     }
  30.  
  31.     public boolean modyfikujZdarzenie(int dzien, LocalTime czasRozpoczecia, Zdarzenie zdarzenie){   //modyfikuj konkretny obiekt w klasie zdarzenie
  32.         Zdarzenie temp;
  33.         if((temp = sprawdzCzyZdarzenieIstnieje(dzien, czasRozpoczecia)) != null){
  34.             usunZdarzenie(dzien , czasRozpoczecia);
  35.             if(dodajZdarzenie(dzien, zdarzenie)) {
  36.                 return true;
  37.             }
  38.             else {
  39.                 dodajZdarzenie(dzien, temp);
  40.                 return false;
  41.             }
  42.         } else {
  43.             return false;
  44.         }
  45.     }
  46.  
  47.     public Zdarzenie sprawdzCzyZdarzenieIstnieje(int dzien, LocalTime czasRozpoczecia) { // to ma być w modyfikuj zdarzenie
  48.         for(Zdarzenie zad: kalendarz[dzien - 1]) {
  49.             if(zad.getCzasRozpoczecia().equals(czasRozpoczecia)) {
  50.                 return zad;
  51.             }
  52.         }
  53.         return null;
  54.     }
  55.  
  56.     public ArrayList<Zdarzenie> getDzien(int dzien) {    // TU MÓWIŁ że get dzień ma być
  57.         return kalendarz[dzien - 1];
  58.     }
  59. }
  60.  
  61. import java.time.LocalTime;
  62. import java.time.format.DateTimeFormatter;
  63. import java.util.Scanner;
  64.  
  65. public class Main {
  66.  
  67.     static Scanner scanner = new Scanner(System.in);
  68.     static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("H:m");
  69.     public static void main(String[] args) {
  70.         Kalendarz kalendarz = new Kalendarz();
  71.         boolean info = true;
  72.         do {
  73.             System.out.println("KALENDARZ");
  74.             opcje();
  75.             switch (scanner.next()) {
  76.                 case "1":
  77.                     dodajZdarzenie(kalendarz);
  78.                     break;
  79.                 case "2":
  80.                     usunZdarzenie(kalendarz);
  81.                     break;
  82.                 case "3":
  83.                     modyfikujZdarzenie(kalendarz);
  84.                     break;
  85.                 case "4":
  86.                     wyswietlZdarzenie(kalendarz);
  87.                     break;
  88.                 case "5":
  89.                     info = false;
  90.                     break;
  91.                 default:
  92.                     System.out.println("Nie ma takiej opcji, spróbuj jeszcze raz:");
  93.                     break;
  94.             }
  95.         } while (info == true);
  96.     }
  97.     public static void opcje() {
  98.         System.out.println("Dodaj zdarzenie                  - 1");
  99.         System.out.println("Usuń  zdarzenie                  - 2");
  100.         System.out.println("Modyfikuj zdarzenie              - 3");
  101.         System.out.println("Wyświetl zdarzenie z danego dnia - 4");
  102.         System.out.println("Wyjdź z kalendarza               - 5");
  103.     }
  104.     public static void dniTygodnia() {
  105.         System.out.println("Poniedziałek - 1");
  106.         System.out.println("Wtorek       - 2");
  107.         System.out.println("Sroda        - 3");
  108.         System.out.println("Czwartek     - 4");
  109.         System.out.println("Piątek       - 5");
  110.         System.out.println("Sobota       - 6");
  111.         System.out.println("Niedziela    - 7");
  112.     }
  113.     public static void dodajZdarzenie(Kalendarz kalendarz) {
  114.         Scanner sc = new Scanner(System.in);
  115.         int dzien;
  116.         String czasRozpoczecia, czasZakonczenia, tresc;
  117.         LocalTime terminRozpoczecia, terminZakonczenia;
  118.         do {
  119.             System.out.println("Wybierz dzień tygodnia do którego chcesz dodać zdarzenie za pomocą numerów: ");
  120.             dniTygodnia();
  121.             dzien = scanner.nextInt();
  122.         } while(poprawnoscDnia(dzien) == false);
  123.         System.out.println("Wpisz godzinę rozpoczęcia zdarzenia, podaj w foramcie:'Godzina:minuta' ");
  124.         czasRozpoczecia = sc.nextLine();
  125.         terminRozpoczecia = LocalTime.parse(czasRozpoczecia, formatter);
  126.         do {
  127.             System.out.println("Wpisz godzinę zakończenia zdarzenia, podaj w foramcie:'Godzina:minuta' ");
  128.             czasZakonczenia = sc.nextLine();
  129.             terminZakonczenia = LocalTime.parse(czasZakonczenia, formatter);
  130.             if(terminZakonczenia.isAfter(terminRozpoczecia) == false)
  131.                 System.out.println("Termin zakończenia nie może występować przed terminem rozpoczęcia. Spróbuj ponownie");
  132.         } while (terminZakonczenia.isAfter(terminRozpoczecia) == false);
  133.         System.out.println("Podaj treść zdarzenia: ");
  134.         tresc = sc.nextLine();
  135.         Zdarzenie zdarzenie = new Zdarzenie(terminRozpoczecia, terminZakonczenia, tresc);
  136.         if(kalendarz.dodajZdarzenie(dzien, zdarzenie) == true) {
  137.             System.out.println("Zdarzenie zostało dodane");
  138.         }
  139.         else
  140.             System.out.println("Istnieje już zdarzenie o tej godzinie, spróbuj ponownie:");
  141.     }
  142.     public static void usunZdarzenie(Kalendarz kalendarz) {
  143.         Scanner sc = new Scanner(System.in);
  144.         int dzien;
  145.         String czasRozpoczecia;
  146.         LocalTime terminRozpoczecia;
  147.         do {
  148.             System.out.println("Podaj dzień tygodnia z którego chcesz usunąć zdarzenie za pomocą liczby: ");
  149.             dniTygodnia();
  150.             dzien = scanner.nextInt();;
  151.         } while(poprawnoscDnia(dzien) == false);
  152.         System.out.println("Wybierz godzinę z której chcesz usunąć zdarzenie, podaj w formacie 'Godzina:minuta' ");
  153.         czasRozpoczecia = sc.nextLine();
  154.         terminRozpoczecia = LocalTime.parse(czasRozpoczecia, formatter);
  155.         if(kalendarz.usunZdarzenie(dzien, terminRozpoczecia) == true) {
  156.             System.out.println("Zdarzenie zostało usuniete");
  157.         }
  158.         else System.out.println("Termin nie był zajęty");
  159.     }
  160.     public static void modyfikujZdarzenie(Kalendarz kalendarz) {
  161.         Scanner sc = new Scanner(System.in);
  162.         int dzien;
  163.         String czasRozpoczecia, czasZakonczenia, tresc;
  164.         LocalTime terminRozpoczecia, terminRozpoczeciaNowego, terminZakonczenia;
  165.         do {
  166.             System.out.println("Podaj dzień tygodnia w którym chcesz zmodyfikować zdarzenie za pomocą liczby: ");
  167.             dniTygodnia();
  168.             dzien = scanner.nextInt();
  169.         } while(poprawnoscDnia(dzien) == false);
  170.         System.out.println("Wpisze godzinę zdarzenia do modyfikacji, podaj w formacie 'Godzina:minuta' ");
  171.         czasRozpoczecia = sc.nextLine();
  172.         terminRozpoczecia = LocalTime.parse(czasRozpoczecia, formatter);
  173.         do {
  174.             System.out.println("Wybierz nowa godzinę zakończenia zdarzenia, podaj w formacie 'Godzina:minuta' ");
  175.             czasZakonczenia = sc.nextLine();
  176.             terminZakonczenia = LocalTime.parse(czasZakonczenia, formatter);
  177.             if(terminZakonczenia.isAfter(terminRozpoczecia) == false)
  178.                 System.out.println("Termin zakończenia nie może występować przed terminem rozpoczęcia. Spróbuj ponownie");
  179.         } while (terminZakonczenia.isAfter(terminRozpoczecia) == false);
  180.         System.out.println("Podaj nowa treść modyfikowanego zdarzenia: ");
  181.         tresc = sc.nextLine();
  182.         Zdarzenie zdarzenie = new Zdarzenie(terminRozpoczecia, terminZakonczenia, tresc);
  183.         if(kalendarz.modyfikujZdarzenie(dzien, terminRozpoczecia, zdarzenie)) {
  184.             System.out.println("Zdarzenie zostało zmodyfikowane");
  185.         } else {
  186.             System.out.println("Zdarzenie nie zostalo zmodyfikowane, nie ma zdarzenia o takiej godzine");
  187.         }
  188.     }
  189.     public static void wyswietlZdarzenie(Kalendarz kalendarz) {
  190.         int dzien;
  191.         do {
  192.             System.out.println("Podaj dzień tygodnia, z którego chcesz wyświetlić zdarzenia za pomocą liczby: ");
  193.             dniTygodnia();
  194.             dzien = scanner.nextInt();
  195.         } while(poprawnoscDnia(dzien) == false);
  196.         if(kalendarz.getDzien(dzien).size() == 0) {
  197.             System.out.println("Brak zdarzeń do wyświetlenia w tym dniu");
  198.         }
  199.         for(Zdarzenie z: kalendarz.getDzien(dzien)) {
  200.             System.out.println(z);
  201.         }
  202.     }
  203.     public static boolean poprawnoscDnia(int dzien) {
  204.         if(dzien > 7 || dzien < 1) {
  205.             System.out.println("Nie ma takiego dnia, podaj ponownie");
  206.             return false;
  207.         } else
  208.             return true;
  209.     }
  210. }