package routines;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class CustomDate {

	// Retourne la date de début au 01/01/1900
	public static final Date minDateDebut = TalendDate.parseDate("dd/MM/yyyy", "01/01/1900");
	
	// Retourne la date de fin au 31/12/2999
	public static final Date maxDateFin = TalendDate.parseDate("dd/MM/yyyy", "31/12/2999");
	
	// Retourne la date du jour au format JJ/MM/AAAA
	public static final Date currentDate = TalendDate.parseDate("dd/MM/yyyy", TalendDate.formatDate("dd/MM/yyyy", new Date()));
	
	 /**
     * getMilisecAsHours: retourne un format heure:minute:seconde depuis une valeur en miliseconde
     * 
     * 
     * {talendTypes} long
     * 
     * {Category} CustomDate
     * 
     * {param} long("1536259") input: valeur en miliseconde
     * 
     * {example} getMilisecAsHours("1536259") # "25:36:259".
     */
	public static long getMilisecBetweenTowDates(Date date1, Date date2) { 
		
		long elapsed = (date1 != null && date2 != null) ? date2.getTime()-date1.getTime() :
			(date1 != null) ? date1.getTime() : date2.getTime();
		return elapsed;
	}
	
	/**
     * getMilisecAsHours: retourne un format heure:minute:seconde depuis une valeur en miliseconde
     * 
     * 
     * {talendTypes} long
     * 
     * {Category} CustomDate
     * 
     * {param} long("1536259") input: valeur en miliseconde
     * 
     * {example} getMilisecAsHours("1536259") # "25:36:259".
     */
	public static String getStringBetweenTowDates(Date date1, Date date2) { 
		
		long elapsed = (date1 != null && date2 != null) ? date2.getTime()-date1.getTime() :
			(date1 != null) ? date1.getTime() : date2.getTime();
		DateFormat df = new SimpleDateFormat("HH':'mm':'ss");
		df.setTimeZone(TimeZone.getTimeZone("GMT+0"));
		return df.format(new Date(elapsed));
	
	}
   
}
