' Had to cheat a little ' mRadians is a Double-Precision type (very high precision) ' And is a global, which means: ' We calculate it once (on program start) ' And reuse it many times (on each tick) Dim mRadians As Double Private Sub Form_Load() ' Formulas: Angle in Radians = Angle in Degress * (PI/180) ' X = Radius x Cos(Angle in Radians) ' Y = Radius x Sin(Angle in Radians) ' ' Calculate and store Radians conversion once (for speed) mRadians = (3.14159265358979 / 180#) ' And force the hands to redraw the first time. Call Timer1_Timer End Sub Private Sub Timer1_Timer() Dim mAngle As Double: mAngle = 0# ' Store time so H/M/S all use the same time Dim mTime As String: mTime = Time() Label1.Caption = mTime ' Center of circle is 1747 X, 1627 Y 'Hour - Radius = 750 Dim mHour As Integer: mHour = Hour(mTime) If mHour > 12 Then mHour = mHour - 12 mAngle = ((mHour * 30) - 90) * mRadians HourHand.X1 = (750 * Cos(mAngle)) + 1747 HourHand.Y1 = (750 * Sin(mAngle)) + 1627 'Minute - Radius = 1125 Dim mMin As Integer: mMin = Minute(mTime) mAngle = ((mMin * 6) - 90) * mRadians MinuteHand.X1 = (1125 * Cos(mAngle)) + 1747 MinuteHand.Y1 = (1125 * Sin(mAngle)) + 1627 'Second - Radius = 1500 Dim mSec As Integer: mSec = Second(mTime) mAngle = ((mSec * 6) - 90) * mRadians SecondHand.X1 = (1500 * Cos(mAngle)) + 1747 SecondHand.Y1 = (1500 * Sin(mAngle)) + 1627 End Subthis is txt file