Period i Duration
Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 57 z 59.
Period reprezentuje oparty na dacie przedział czasu (lata, miesiące, dni), natomiast Duration reprezentuje oparty na czasie przedział (godziny, minuty, sekundy).
Utwórz okres:
Period period = Period.of(1, 2, 15);
// 1 rok, 2 miesiące, 15 dniUtwórz czas trwania:
Duration duration = Duration.ofHours(2);
// 2 godziny
Duration minutes = Duration.ofMinutes(90);
// 90 minutPo wykonaniu powyższego kodu period zawiera:
P1Y2M15D // format ISO-8601Wyzwanie
ŁatwyUtwórz metodę o nazwie calculateDifference, która przyjmuje cztery argumenty:
- String (
start) w formacie "yyyy-MM-dd HH:mm" - String (
end) w formacie "yyyy-MM-dd HH:mm" - String (
unit) o wartości "period" lub "duration" - String (
format) o wartości "full" lub "simple"
Metoda powinna:
- Obliczyć różnicę między datami początkową i końcową
- Zwrócić różnicę w określonym formacie
Zwracane komunikaty powinny być następujące:
- Jeśli daty są nieprawidłowe: zwróć "Invalid date format"
- Jeśli jednostka jest nieprawidłowa: zwróć "Invalid unit"
- Jeśli format jest nieprawidłowy: zwróć "Invalid format"
- Dla okresu w formacie "full": "Years: X, Months: Y, Days: Z"
- Dla okresu w formacie "simple": "XyYmZd"
- Dla czasu trwania w formacie "full": "Hours: X, Minutes: Y"
- Dla czasu trwania w formacie "simple": "XhYm"
Spróbuj swoich sił
import java.util.Scanner;
import java.time.*;
import java.time.format.*;
public class Main {
public static String calculateDifference(String start, String end, String unit, String format) {
// Napisz tutaj swój kod
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String start = scanner.nextLine();
String end = scanner.nextLine();
String unit = scanner.nextLine();
String format = scanner.nextLine();
System.out.println(calculateDifference(start, end, unit, format));
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DDodawanie i odejmowanie macierzyTablice postrzępioneTablice 3D i większeTypowe wzorce dla tablic 2DPodsumowanie — wszystko o tablicach4HashSet — część 1
Czym jest HashSet?Dodawanie elementuUsuwanie elementuSprawdzanie, czy element istniejePusty i rozmiarCzyszczenie i klonowaniePodsumowanie — HashSet10Data i czas
Podstawy LocalDateOperacje na LocalTimeZastosowanie LocalDateTimePeriod i DurationFormatowanie datObsługa stref czasowych2HashMap część 1
Czym jest HashMap?Deklarowanie HashMapDostęp do wartościSprawdzanie, czy klucz istniejeModyfikowanie słownikówPodsumowanie — HashMap3HashMap — część 2
Metody HashMapIterowanie za pomocą keySet()Iterowanie za pomocą entrySet()Zagnieżdżona HashMapPowtórka — zarządzanie magazynemPowtórka — operacje na HashMap6Zaawansowany przepływ sterowania
Instrukcje etykietująceWyrażenie switchDopasowywanie wzorcówKlauzule ochronnePowtórzenie — przepływ sterowania9Projekt — licznik unikalnych słów
Wprowadzanie i przechowywanie tekstuPrzetwarzanie słówPoćwicz samodzielnie: Kompilator Java online