/**
 * 
 */
package com.ejie.ad74a.model;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;

import com.ejie.ad74a.util.UtilDates;

/**
 * POJO que representa un periodo de tiempo
 * @author BICUGUAL
 *
 */
public class Periodo implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private LocalDate fInicio;
	private LocalDate fFin;
	
	public Periodo(LocalDate fInicio, LocalDate fFin) {
		super();
		this.fInicio = fInicio;
		this.fFin = fFin;
	}
	
	public Periodo(String anyoMes) {
		super();
		this.fInicio = UtilDates.formatYearMonthToLocalDateAtFirstDayOfMonth(anyoMes);
		this.fFin = UtilDates.formatYearMonthToLocalDateAtLastDayOfMonth(anyoMes);
	}

	public LocalDate getfInicio() {
		return fInicio;
	}

	public void setfInicio(LocalDate fInicio) {
		this.fInicio = fInicio;
	}

	public LocalDate getfFin() {
		return fFin;
	}

	public void setfFin(LocalDate fFin) {
		this.fFin = fFin;
	}
	
	public Date getFInicioAsDate() {
		return null != this.fInicio ? UtilDates.formatLocalDateToDate(this.fInicio) : null;
	}
	
	public Date getFFinAsDate() {
		return null != this.fInicio ? UtilDates.formatLocalDateToDate(this.fFin) : null;
	}
	
	public int getNdias() {
		return UtilDates.getDaysBetweenTwoLocalDates(fInicio, fFin).intValue();
	}

	@Override
	public String toString() {
		return "Periodo [fInicio=" + fInicio + ", fFin=" + fFin + ", nDias=" + getNdias() + "]";
	}
	
	
}
