
/*
Online Java - IDE, Code Editor, Compiler

Online Java is a quick and easy tool that helps you to build, compile, test your programs online.
*/

abstract class checkDate
{
    //abstract static void createDate();
    abstract void checkPalindrome();
    //abstract void checkLeapYear();
    
}


public class Main extends checkDate
{
        static int year;
        static String yearString;
        static String finalDate;
        static Object days;
        static Object month;
        static Object objectLeapYearFebruaryDays;
        static int intLeapYearFebruaryDays;
        static boolean leapYear;
        
    public void checkPalindrome()
    {
        
    }
    
    
    enum Months
    {
        JAN (31,1), FEB(28,2) ,MAR(31,3),APRIL(30,4),MAY(31,5),JUNE(30,6), JULY(31,7), AUGUST(31,8), SEPTEMBER(30,9),OCTOBER(31,10), NOV(30,11),DEC(31,12);
        
        public int days;
        public int month;
        
        Months (int days, int month)
        {
            this.days=days;
            this.month=month;
        }
    }
    
   
    public static void main(String[] args) {
        System.out.println("Welcome to Online IDE!! Happy Coding :)");
        
        palindromicDates("01/01/2020", 100);
    }
    
    public static int palindromicDates (String date, int years)
    {
        int startPos = date.length()-4;
        
        createDate(startPos, date);
        return 1;
    }
    
    
    public static void createDate(int startPos, String date)
    {
        yearString = date.substring(startPos, date.length());
        
        year = Integer.valueOf(yearString);
        
        // for every year
        
        for (int i=0; i<100; i++)
        {
            leapYear=false;
            
            System.out.println("This is the year: " + year);
            
            //for every month in n years
            
            
            // for every month
            for (Months m: Months.values())
        {
            if (year%4==0)    //leap year
            {
                objectLeapYearFebruaryDays = m.FEB.days;
                
                intLeapYearFebruaryDays = (int) (objectLeapYearFebruaryDays)+1;
                
                leapYear=true;
                
            }
            
            System.out.println(m.name());
            
            days = m.days;
            
            if (m.name()=="FEB" && leapYear)
            {
                
                //intDaysFebruaryLeap = (int) days + 1;
                
                days = (Object) intLeapYearFebruaryDays;
                
            }
            
            // for every day
            
            for (int k=0; k<(int) days; k++)
            {
                month = m.month;
            
           finalDate = days.toString() + month.toString() + year;
            
            System.out.println("This is final date: " + finalDate);
                
            }
            
            //System.out.println(m.days);
            
            //System.out.println(m.month);
            
            
            // this is assigning to objects
            //days = m.days;
            
            
        }
        
        year++;    
        }
   
        //return 1;
    }
    
}
