Menu
Coddy logo textTech

Period e Duration

Parte da seção Lógica e Fluxo do Journey de Java da Coddy. Lição 57 de 59.

Period representa uma quantidade de tempo baseada em datas (anos, meses, dias), enquanto Duration representa uma quantidade baseada em tempo (horas, minutos, segundos).

Criar um Período:

Period period = Period.of(1, 2, 15);
// 1 year, 2 months, 15 days

Crie uma duração:

Duration duration = Duration.ofHours(2);
// 2 horas
Duration minutes = Duration.ofMinutes(90);
// 90 minutos

Após executar o código acima, period contém:

P1Y2M15D  // ISO-8601 format
challenge icon

Desafio

Fácil

Crie um método chamado calculateDifference que aceite quatro argumentos:

  1. Uma String (start) no formato "yyyy-MM-dd HH:mm"
  2. Uma String (end) no formato "yyyy-MM-dd HH:mm"
  3. Uma String (unit) que seja "period" ou "duration"
  4. Uma String (format) que seja "full" ou "simple"

O método deve:

  1. Calcular a diferença entre as datas de início e fim
  2. Retornar a diferença no formato especificado

As mensagens de retorno devem ser:

  • Se as datas forem inválidas: retornar "Invalid date format"
  • Se a unidade for inválida: retornar "Invalid unit"
  • Se o formato for inválido: retornar "Invalid format"
  • Para period com o formato "full": "Years: X, Months: Y, Days: Z"
  • Para period com o formato "simple": "XyYmZd"
  • Para duration com o formato "full": "Hours: X, Minutes: Y"
  • Para duration com o formato "simple": "XhYm"

Experimente você mesmo

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) {
        // Escreva seu código aqui
    }
    
    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));
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de Java online