/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		MiniDate birthDate = new MiniDate( 1967 , 1 , 23 );
		MiniDate hireDate = new MiniDate( 2016 , 2 , 28 );
		Employee e1 = new Employee( "Wendy" , "Melvoin" , birthDate , hireDate );
		System.out.println( e1 );
		
		Employee e2 = new Employee( "Lisa" , "Coleman" , 1968 , 2 , 24 , 2016 , 4 , 14 );
		System.out.println( e2 );
		
		// FYI: In real work, use the existing `LocalDate` class rather than invent your own date-time class.
		// LocalDate birthDate = LocalDate.of( 1967 , 1 , 23 );
	}
}

class Employee {
	private String firstName , lastName ;
	private MiniDate birthDate , hireDate ;
	
	public Employee( String firstNameArg , String lastNameArg , MiniDate birthDateArg , MiniDate hireDateArg ) {
		this.firstName = firstNameArg;
		this.lastName = lastNameArg;
		this.birthDate = birthDateArg;
		this.hireDate = hireDateArg;
	}
	
	public Employee( String firstNameArg , String lastNameArg , int birthYearArg , int birthMonthArg , int birthDayOfMonthArg , int hireYearArg , int hireMonthArg , int hireDayOfMonthArg  ) {
		this.firstName = firstNameArg;
		this.lastName = lastNameArg;
		this.birthDate = new MiniDate( birthYearArg , birthMonthArg , birthDayOfMonthArg );
		this.hireDate = new MiniDate( hireYearArg , hireMonthArg , hireDayOfMonthArg );
	}
	
	@Override
	public String toString() {
		String s = "Employee{ name: " + this.firstName + " " + this.lastName + " | birthDate: " + this.birthDate + " | hireDate: " + hireDate + " }" ;
		return s;
	}
}

class MiniDate {
	// For teaching purposes only. In real work, use `LocalDate` class bundled with Java.
	private int year , month , dayOfMonth ;
	
	public MiniDate( int yearArg , int monthArg , int dayOfMonthArg ) {
		this.year = yearArg;
		this.month = monthArg;
		this.dayOfMonth = dayOfMonthArg;
	}
	
	@Override
	public String toString() {
		// Generate string in standard ISO 8601 format, padding with zeros as needed.
		String s = this.year + "-" + String.format( "%02d", this.month ) + "-" + String.format( "%02d", this.dayOfMonth ) ;
		return s ;
	}
}