fecha de lanzamiento
public class Episodio {
private Integer temporada;
private String titulo;
private Integer numeroEpisodio;
private Double evaluacion;
private LocalDate fechaDeLanzamiento;
public Episodio(Integer temporada, DatosEpisodio datosEpisodio) {
this.temporada = temporada;
this.titulo = datosEpisodio.titutlo();
this.numeroEpisodio = datosEpisodio.numeroEpisodio();
try {
this.evaluacion = Double.valueOf(datosEpisodio.evaluacion()) ;
} catch (NumberFormatException ex){
this.evaluacion = 0.0;
}
try{
this.fechaDeLanzamiento = LocalDate.parse(datosEpisodio.fechaDeLanzamiento());
}catch (DateTimeParseException ex){
this.fechaDeLanzamiento = null;
}
}
@Override
public String toString() {
return
"temporada=" + temporada +
", titutlo='" + titulo + '\'' +
", numeroEpisodio=" + numeroEpisodio +
", evaluacion=" + evaluacion +
", fechaDeLanzamiento=" + fechaDeLanzamiento;
}
public Integer getTemporada() {
return temporada;
}
public void setTemporada(Integer temporada) {
this.temporada = temporada;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public Integer getNumeroEpisodio() {
return numeroEpisodio;
}
public void setNumeroEpisodio(Integer numeroEpisodio) {
this.numeroEpisodio = numeroEpisodio;
}
public Double getEvaluacion() {
return evaluacion;
}
public void setEvaluacion(Double evaluacion) {
this.evaluacion = evaluacion;
}
public LocalDate getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
p
List<DatosTemporada> temporadas = new ArrayList<>();
for (int i = 1; i <= datos.totalTemporadas(); i++) {
json = consumoAPI.obtenerDatos(URL + nombreSerie.replace(" ", "+") + "&Season=" + i + APIKEY);
DatosTemporada datosTemporada = conversor.obtenerDatos(json, DatosTemporada.class);
temporadas.add(datosTemporada);
}
temporadas.forEach(System.out::println);
for (int i = 0; i < datos.totalTemporadas(); i++) {
List<DatosEpisodio> episodiosTemporadas = temporadas.get(i).episodios();
for (int j = 0; j < episodiosTemporadas.size(); j++) {
System.out.println(episodiosTemporadas.get(j).titutlo());
}
}
temporadas.forEach(t -> t.episodios().forEach(e -> System.out.println(e.titutlo())));
List<String> nombres = Arrays.asList("Genesys","Eric","Maria","Brenda");
nombres.stream()
.sorted()
.limit(2)
.filter(n -> n.startsWith("E"))
.map(n -> n.toUpperCase())
.forEach(System.out::println);
List<DatosEpisodio> datosEpisodios = temporadas.stream()
.flatMap(t -> t.episodios().stream())
.collect(Collectors.toList());
System.out.println("\n Top 5 episodios");
datosEpisodios.stream()
.filter(e -> !e.evaluacion().equalsIgnoreCase("N/A"))
.sorted(Comparator.comparing(DatosEpisodio::evaluacion).reversed())
.limit(5)
.forEach(System.out::println);
List<Episodio> episodios = temporadas.stream()
.flatMap(t -> t.episodios().stream()
.map(d -> new Episodio(t.numero(), d)))
.collect(Collectors.toList());
episodios.forEach(System.out::println);
System.out.println("a partir de que año deseas ver los episodios?");
var fecha = teclado.nextInt();
teclado.nextLine();
LocalDate fechaBusqueda = LocalDate.of(fecha, 1, 1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
episodios.stream()
.filter(e -> e.getFechaDeLanzamiento() != null && e.getFechaDeLanzamiento().isAfter(fechaBusqueda))
.forEach(e -> System.out.println(
"Temporada: " + e.getTemporada() +
" Episodio: " + e.getTitulo() +
" Fecha de Lanzamiento: " + e.getFechaDeLanzamiento().format(formatter)
));
}
}