package hakta_hf_01;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/* Nem egy fantáziadús program, és értelme sincs sok,
 * de teljesíti szerintem az összes kritériumot...
 */

public class Datum {
	
	public enum months { January, February, March, April, May, June, July, August, September, October, November, December };
	public enum days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };
	
	private static int convertToNumber (months Month)
	{
		switch (Month)
		{
		case January:
			return 1;
		case February:
			return 2;
		case March:
			return 3;
		case April:
			return 4;
		case May:
			return 5;
		case June:
			return 6;
		case July:
			return 7;
		case August:
			return 8;
		case September:
			return 9;
		case October:
			return 10;
		case November:
			return 11;
		case December:
			return 12;
		}
		return 0;
	}
	
	private static days convertToDay(int dayOfWeek)
	{
		switch (dayOfWeek)
		{
		case 0:
			return days.Monday;
		case 1:
			return days.Tuesday;
		case 2:
			return days.Wednesday;
		case 3:
			return days.Thursday;
		case 4:
			return days.Friday;
		case 5:
			return days.Saturday;
		case 6:
			return days.Sunday;
		}
		return null;
	}
	
	private static String getDay(String input_date) throws ParseException
	{
		Calendar c = Calendar.getInstance();
		SimpleDateFormat format1 = new SimpleDateFormat("dd/MM/yyyy");
		Date dt=format1.parse(input_date);
		c.setTime(dt);
		int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
		days d = convertToDay(dayOfWeek);
		return d.toString();
	}
	
	public static void main(String[] args) throws ParseException {
		String input_date = "5/" + convertToNumber(months.July) + "/1994";		
		System.out.println(input_date + " is a " + getDay(input_date));

		input_date = "1/" + convertToNumber(months.January) + "/1900";		
		System.out.println(input_date + " is a " + getDay(input_date));

		input_date = "17/" + convertToNumber(months.February) + "/2016";		
		System.out.println(input_date + " is a " + getDay(input_date));
	}

}
