Podstawy LocalDate
Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 54 z 59.
LocalDate w Javie reprezentuje datę bez godziny i strefy czasowej. Służy do pracy z datami, takimi jak urodziny, święta lub harmonogramy.
Utwórz dzisiejszą datę:
LocalDate today = LocalDate.now();Utwórz konkretną datę:
LocalDate date = LocalDate.of(2024, 3, 15);Po wykonaniu powyższego kodu zmienna date zawiera: 2024-03-15
Pobierz poszczególne części daty:
LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear(); // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth(); // 15
String dayOfWeek = date.getDayOfWeek().toString(); // "FRIDAY"Parsuj datę z obiektu String:
LocalDate date = LocalDate.parse("2024-03-15"); // Format: "yyyy-MM-dd"Ważne: Jeśli format ciągu znaków jest nieprawidłowy, parse() zgłasza wyjątek DateTimeParseException. Użyj try-catch, aby go obsłużyć:
try {
LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
System.out.println("Invalid date format");
}Dodaj lub odejmij dni:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10Po wykonaniu powyższego kodu:
future: 2024-03-25past: 2024-03-10
Wyzwanie
ŁatwyUtwórz metodę o nazwie processDate, która przyjmuje trzy argumenty:
- String (
dateStr) w formacie "yyyy-MM-dd" - Liczbę całkowitą (
days) do dodania lub odjęcia - String (
operation) o wartości "add" lub "subtract"
Metoda powinna:
- Przeanalizować wejściowy ciąg daty
- Dodać lub odjąć określoną liczbę dni
- Zwrócić sformatowane informacje o wyniku
Zwracane komunikaty powinny być następujące:
- Jeśli format daty jest nieprawidłowy: zwróć "Invalid date format"
- Jeśli operacja jest nieprawidłowa: zwróć "Invalid operation"
- W przypadku powodzenia: zwróć "Original: [date], New: [new_date], Day of week: [day_name]"
Spróbuj swoich sił
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processDate(String dateStr, int days, String operation) {
// Napisz tutaj swój kod
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
int days = Integer.parseInt(scanner.nextLine());
String operation = scanner.nextLine();
System.out.println(processDate(dateStr, days, operation));
}
}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