//<APPLET code="p6.class" width=300 height=250></APPLET>
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.util.*;
import java.awt.event.*;

public class p6 extends Applet{

	Calendar cal;
	String y, m, d, w;
	int t_year, t_month, t_day;
	int year, month, day, week;
	int temp;

	public void init(){
		cal = Calendar.getInstance();
		t_year = cal.get(Calendar.YEAR);
		t_month = cal.get(Calendar.MONTH);
		t_day = cal.get(Calendar.DAY_OF_MONTH);
		getdate(t_year, t_month, t_day);
		addMouseListener(new MouseControl());
	}

	public void paint(Graphics g){

		String str;
		int x_point = 20, y_point = 80;

		g.setColor(Color.white);
		g.fillRect(0,0,300,250);
		g.setFont(new Font("Times New Roman", Font.ITALIC, 12));
		g.setColor(Color.blue);
		g.drawString("Made by Kenta Noguchi", 180, 20);
		getdate(year, month, day);
		g.setFont(new Font("Times New Roman", Font.ITALIC, 20));
		g.setColor(Color.blue);
		g.drawString(m + "   " + y, 20, 30);

		g.setFont(new Font("MS Gothic", Font.PLAIN, 12));
		g.setColor(Color.red);
		g.drawString("Sun",20,60);
		g.setColor(Color.black);
		g.drawString("Mon",60,60);
		g.drawString("Tue",100,60);
		g.drawString("Wed",140,60);
		g.drawString("Thu",180,60);
		g.drawString("Fri",220,60);
		g.setColor(Color.blue);
		g.drawString("Sat",260,60);

		g.setFont(new Font("MS Gothic", Font.PLAIN, 15));
		temp = month;
		day = 1;
		getdate(year, month, day);
		for(int i=1; i<week; i++){
			x_point += 40;
		}

		while(month==temp){
			if(x_point > 260){
				y_point += 20;
				x_point = 20;
			}
			if(year==t_year && month==t_month && day==t_day){g.setColor(Color.green);}
			else if(week==1){g.setColor(Color.red);}
			else if(week==7){g.setColor(Color.blue);}
			else{g.setColor(Color.black);}
			g.drawString(d,x_point,y_point);
			x_point += 40;
			day++;
			getdate(year, month, day);
		}
		month--;

		g.setFont(new Font("MS Gothic", Font.PLAIN, 10));
		g.setColor(Color.black);
		g.drawString("Previous << [Left Click!]  [Right Click!] >> Next",20,y_point+30);
	}

	public class MouseControl extends MouseAdapter {
		public void mouseClicked(MouseEvent e) {
			int btn = e.getButton();
			if(btn==1){month--;}
			else if(btn==3){month++;}
			repaint();
		}
	}

	public void getdate(int year_, int month_, int day_){
		cal = Calendar.getInstance();
		cal.set(year_, month_, day_);
		year = cal.get(Calendar.YEAR);
		month = cal.get(Calendar.MONTH);
		day = cal.get(Calendar.DAY_OF_MONTH);
		week = cal.get(Calendar.DAY_OF_WEEK);
		
		y = Integer.toString(year);
		switch(month){
			case(0): m = "January"; break;
			case(1): m = "February"; break;
			case(2): m = "March"; break;
			case(3): m = "April"; break;
			case(4): m = "May"; break;
			case(5): m = "June"; break;
			case(6): m = "July"; break;
			case(7): m = "August"; break;
			case(8): m = "September"; break;
			case(9): m = "Octorber"; break;
			case(10): m = "November"; break;
			case(11): m = "December"; break;
			default: m = "Error!";
		}
		if(day/10==0)
			d = " " + Integer.toString(day);
		else
			d = Integer.toString(day);
	}

}