Problem:
西暦和暦変換

西暦で表された年月日を、元号を用いた和暦に変換し、その年月日を出力するプログラムを作成してください。入力は例に示すように 3 つの整数であり、順に西暦年、月、日です。これを、出力例に示すように変換してください。なお、明治以前の年月日が入力された場合は「pre-meiji」と表示してください。

各年号の最初の年は「元年」ではなく「１年」と出力することとします。

元号

期間

meiji

1868. 9. 8 〜 1912. 7.29

taisho

1912. 7.30 〜 1926.12.24

showa

1926.12.25 〜 1989. 1. 7

heisei

1989. 1. 8 〜

入力

複数のデータが与えられます。各データとして年、月、日を表す３つの整数が空白区切りで１行に与えられます。

入力の終わりまで処理してください。データの数は 50 を超えません。

出力

空白区切りの元号、年、月、日、または「pre-meiji」を１行に出力してください。

Sample Input

2005 9 3
1868 12 2
1868 9 7

Output for the Sample Input

heisei 17 9 3
meiji 1 12 2
pre-meiji

Solution in JAVA (judge verdict: Accepted)

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);

		while(stdIn.hasNext()){
			int year = stdIn.nextInt();
			int month = stdIn.nextInt();
			int day = stdIn.nextInt();

			if(year<=1867){
				System.out.println("pre-meiji");
			}
			else if(1869<=year&&year<=1911){
				System.out.println("meiji "+(year-1867)+" "+month+" "+day);
			}
			else if(1913<=year&&year<=1925){
				System.out.println("taisho "+(year-1911)+" "+month+" "+day);
			}
			else if(1927<=year&&year<=1988){
				System.out.println("showa "+(year-1925)+" "+month+" "+day);
			}
			else if(1990<=year){
				System.out.println("heisei "+(year-1988)+" "+month+" "+day);
			}

			else if(year==1868){
				if(month>9){
					System.out.println("meiji 1 "+month+" "+day);
				}
				else if(month==9){
					if(day>=8){
						System.out.println("meiji 1 "+month+" "+day);
					}
					else{
						System.out.println("pre-meiji");
					}
				}
				else{
					System.out.println("pre-meiji");
				}
			}
			else if(year==1912){
				if(month>7){
					System.out.println("taisho 1 "+month+" "+day);
				}
				else if(month==7){
					if(day>=30){
						System.out.println("taisho 1 "+month+" "+day);
					}
					else{
						System.out.println("meiji "+(year-1867)+" "+month+" "+day);
					}
				}
				else{
					System.out.println("meiji "+(year-1867)+" "+month+" "+day);
				}
			}
			else if(year==1926){
				if(month>12){
					System.out.println("showa 1 "+month+" "+day);
				}
				else if(month==12){
					if(day>=25){
						System.out.println("showa 1 "+month+" "+day);
					}
					else{
						System.out.println("taisho "+(year-1911)+" "+month+" "+day);
					}
				}
				else{
					System.out.println("taisho "+(year-1911)+" "+month+" "+day);
				}
			}
			else if(year==1989){
				if(month>1){
					System.out.println("heisei 1 "+month+" "+day);
				}
				else if(month==1){
					if(day>=8){
						System.out.println("heisei 1 "+month+" "+day);
					}
					else{
						System.out.println("showa "+(year-1925)+" "+month+" "+day);
					}
				}
				else{
					System.out.println("showa "+(year-1925)+" "+month+" "+day);
				}
			}
		}
	}
}