import java.awt.*;
import javax.swing.*;
import java.util.*;

public class AnalogUhr extends JFrame {

	public AnalogUhr() {
		setSize(400,  300);
		setVisible(true);
		
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new AnalogUhr();
	}
	
	public void paint(Graphics  g)
	{
		g.translate(200, 150);
		
		for (int i = 1; i <= 12; i++) {
			int x = getZeigerPositionX(i);
			int y = getZeigerPositionY(i);
			
			g.drawLine(x-1, y, x+1, y);
		}
		
		Graphics2D g2 = (Graphics2D) g;
		
		GregorianCalendar calendar = new GregorianCalendar();
		int hour = calendar.get(Calendar.HOUR_OF_DAY);
		int minute = calendar.get(Calendar.MINUTE);
		
		g2.setStroke(new BasicStroke(5));
		g.drawLine(0, 0, getZeigerPositionX(hour), getZeigerPositionY(hour));

		g2.setStroke(new BasicStroke(2));
		g.drawLine(0, 0, getZeigerPositionForMinutesX(minute), getZeigerPositionForMinutesY(minute));
	}
	
	private int getZeigerPositionX(int time) {
		return (int) ((-Math.PI / 2) + (Math.toDegrees(Math.cos((double) Math.PI / 6 * time))));
	}

	private int getZeigerPositionY(int time) {
		return (int) ((-Math.PI / 2) + (Math.toDegrees(Math.sin((double) Math.PI / 6 * time))));
	}
	
	private int getZeigerPositionForMinutesX(int time) {
		return (int) ((-Math.PI / 2) + (Math.toDegrees(Math.cos((double) Math.PI / 60 * time))));
	}
	
	private int getZeigerPositionForMinutesY(int time) {
		return (int) ((-Math.PI / 2) + (Math.toDegrees(Math.sin((double) Math.PI / 60 * time))));
	}
}
