/*
 * Created on 2005/04/21
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package Mark;import java.awt.*;
import java.applet.*;
import java.util.*;
public class Clock extends Applet implements Runnable{
Thread timer=null;
int lastxs=0,lastys=0,lastxm=0,lastym=0,lastxh=0,lastyh=0;

public void init(){
setBackground(Color.white);
} public void paint(Graphics g){
int xh,yh,xm,ym,xs,ys,s,m,h,xcenter,ycenter;
Date rightnow=new Date();
String today=rightnow.toLocaleString();
s=rightnow.getSeconds();
m=rightnow.getMinutes();
h=rightnow.getHours();
xcenter=80;
ycenter=80;
xs=(int)(Math.cos(s*3.14f/30-3.14f/2)*45+xcenter);
ys=(int)(Math.sin(s*3.14f/30-3.14f/2)*45+ycenter);
xm=(int)(Math.cos(m*3.14f/30-3.14f/2)*40+xcenter);
ym=(int)(Math.sin(m*3.14f/30-3.14f/2)*40+ycenter);

xh=(int)(Math.cos((h*30+m/2)*3.14f/180-3.14f/2)*30+xcenter);
yh=(int)(Math.sin((h*30+m/2)*3.14f/180-3.14f/2)*30+ycenter);

g.setFont(new Font("TimesRoman",Font.PLAIN,14));
g.setColor(Color.blue);
g.drawArc(xcenter-50,ycenter-50,100,100,0,360);
g.setColor(Color.darkGray);
g.drawString("9",xcenter-45,ycenter+3);
g.drawString("3",xcenter+40,ycenter+3);
g.drawString("12",xcenter-5,ycenter-37);
g.drawString("6",xcenter-3,ycenter+45);

g.setColor(getBackground());
if(xs!=lastxs||ys!=lastys){
g.drawLine(xcenter,ycenter,lastxs,lastys);
g.drawString(today,5,150);
}
if(xm!=lastxm||ym!=lastym){
g.drawLine(xcenter,ycenter-1,lastxm,lastym);
g.drawLine(xcenter-1,ycenter,lastxm,lastym); }
if(xh!=lastxh||yh!=lastyh){
g.drawLine(xcenter,ycenter-1,lastxh,lastyh);
g.drawLine(xcenter-1,ycenter,lastxh,lastyh); }
g.setColor(Color.darkGray);
g.setColor(Color.blue);
g.drawLine(xcenter,ycenter,xs,ys);
g.drawLine(xcenter,ycenter-1,xm,ym);
g.drawLine(xcenter-1,ycenter,xm,ym);
g.drawLine(xcenter,ycenter-1,xh,yh);
g.drawLine(xcenter-1,ycenter,xh,yh);
g.clearRect(10,135,180,180);//add this (redraw)
       g.drawString(today,5,150);

lastxs=xs;lastys=ys;
lastxm=xm;lastym=ym;
lastxh=xh;lastyh=yh;
}



public void start(){
if(timer==null){
timer=new Thread(this);
timer.start();
}
}
public void stop(){timer=null;}
public void run(){
while(timer!=null){
try{
Thread.sleep(1000);  
}catch(InterruptedException e){}
    repaint();
}timer=null;
}
public void update(Graphics g){
paint(g);
}
}