Menu
Coddy logo textTech

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-10

Po wykonaniu powyższego kodu:

  • future: 2024-03-25
  • past: 2024-03-10
challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie processDate, która przyjmuje trzy argumenty:

  1. String (dateStr) w formacie "yyyy-MM-dd"
  2. Liczbę całkowitą (days) do dodania lub odjęcia
  3. String (operation) o wartości "add" lub "subtract"

Metoda powinna:

  1. Przeanalizować wejściowy ciąg daty
  2. Dodać lub odjąć określoną liczbę dni
  3. 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));
    }
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Java online