-   
- import java.util.*; 
- import java.awt.*; 
- import java.applet.*; 
- import java.awt.event.*; 
-   
-   
-   
- public class Clock2 extends Applet implements Runnable { 
-   Thread timer = null; 
-   int lastxs=0;  
-   int lastys=0; 
-   int lastxm=0; 
-   int lastym=0; 
-   int lastxh=0; 
-   int lastyh=0; 
-   Date dummy = new Date(); 
-    
-    
-   Font F = new Font("Arial", Font.PLAIN, 14); 
-   Date dat = null; 
-   
- public void init() { 
-   int x,y; 
-   } 
-   
-   
- public void circle(int x0, int y0, int r, Graphics g) { 
-    
-   int x,y; 
-   float d; 
-   x=0; 
-   y=r; 
-   d=5/4-r; 
-    
-   while (y>x){ 
-     if (d<0) { 
-       d=d+2*x+3; 
-       x++; 
-     } 
-     else { 
-       d=d+2*(x-y)+5; 
-       x++; 
-       y--; 
-     } 
-   } 
- } 
-   
-   
-   // Paint is the main part of the program 
-   
- public void paint(Graphics g) { 
-     
-   int xh, yh, xm, ym, xs, ys, s, m, h, xcenter, ycenter; 
-   
-  dat = new Date(); 
-   s = dat.getSeconds(); 
-   m = dat.getMinutes(); 
-   h = dat.getHours(); 
-    
-   xcenter=80; 
-   ycenter=55; 
-    
-   // a= s* pi/2 - pi/2 (to switch 0,0 from 3:00 to 12:00) 
-   // x = r(cos a) + xcenter, y = r(sin a) + ycenter 
-   
-   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); 
-    
-   // Draw the circle and numbers 
-   g.setColor(Color.black); 
-   g.fillRect(25,1,110,105); 
-   g.setFont(F); 
-   g.setColor(Color.blue); 
-   circle(xcenter,ycenter,50,g); 
-   g.setColor(Color.blue); 
-   g.drawString("IX",xcenter-45,ycenter+3);  
-   g.drawString("III",xcenter+40,ycenter+3); 
-   g.drawString("XII",xcenter-5,ycenter-37); 
-   g.drawString("VI",xcenter-3,ycenter+45); 
-     
-   // Erase if necessary, and redraw 
-    
-   g.setColor(getBackground()); 
-   if (xs != lastxs || ys != lastys) { 
-     g.drawLine(xcenter, ycenter, lastxs, lastys); 
-      
-       } 
-   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.blue); 
-    
-   g.drawLine(xcenter, ycenter, xs, ys); 
-   g.setColor(Color.blue); 
-   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); 
-   lastxs=xs; lastys=ys; 
-   lastxm=xm; lastym=ym; 
-   lastxh=xh; lastyh=yh; 
-    
-   dat=null; 
-    
- } 
-   
- 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(100);} catch (InterruptedException e){} 
-     repaint(); 
-   } 
-   timer = null; 
- } 
-   
- public void update(Graphics g) { 
-   paint(g); 
- } 
- } 
-   
-