Set up two angle tables, one for not quite a circle, and one for a complete circle,
12 elements, and 13 elements respectively

angletable=Table[x,{x,0,2Pi-Pi/6,Pi/6}];(*starts at 3 o'clock and goes CCW*)
twopiangletable=Table[x,{x,Pi,3Pi,Pi/12}];     (*starts at 9 o'clock and goes CCW*)
hoursangletable=Table[x,{x,0,2Pi-Pi/12,Pi/12}];(*starts at 3 o'clock and goes CCW*)

Set up three radii tables, one for the circle, one for the Zodiac, and one for labeling at the outside.
  All three at 13 values

orbitradiustable=Table[1.4,{25}];
offsetradiustable=Table[.25,{25}];
textradiustable=Table[1.8,{25}];
RAarrowsradiustable=Table[2.2,{25}];
dateradiustable=Table[1.4,{25}];

Set up two sets of x and y tables, one for not quite a circle, and one for a complete circle,
12 elements, and 13 elements respectively

xtable=Table[orbitradiustable [[i]]* Cos[twopiangletable[[i]]],{i,1,25}];
ytable=Table[orbitradiustable [[i]]* Sin[twopiangletable[[i]]],{i,1,25}];
xoffsettable=Table[offsetradiustable [[i]]* Cos[twopiangletable[[i]]],{i,1,25}];
yoffsettable=Table[offsetradiustable [[i]]* Sin[twopiangletable[[i]]],{i,1,25}];
twopixtable=Table[orbitradiustable [[i]]* Cos[twopiangletable[[i]]],{i,1,25}];
twopiytable=Table[orbitradiustable [[i]]* Sin[twopiangletable[[i]]],{i,1,25}];
hoursxtable=Table[orbitradiustable [[i]]* Cos[hoursangletable[[i]]],{i,1,24}];
hoursytable=Table[orbitradiustable [[i]]* Sin[hoursangletable[[i]]],{i,1,24}];
datextable=Table[dateradiustable [[i]]* Cos[hoursangletable[[i]]],{i,1,24}];
dateytable=Table[dateradiustable [[i]]* Sin[hoursangletable[[i]]],{i,1,24}];
RAarrowxtable=Table[RAarrowsradiustable [[i]]* Cos[twopiangletable[[i]]],{i,1,25}];
RAarrowytable=Table[RAarrowsradiustable [[i]]* Sin[twopiangletable[[i]]],{i,1,25}];

Set up two x and y tables, one for the Zodiac, and one for the text.  Rotate the Zodiac by pi/12

xtabletext=Table[textradiustable [[i]]* Cos[angletable[[i]]],{i,1,12}];
ytabletext=Table[textradiustable [[i]]* Sin[angletable[[i]]],{i,1,12}];
hoursxtabletext=Table[textradiustable [[i]]* Cos[hoursangletable[[i]]],{i,1,24}];
hoursytabletext=Table[textradiustable [[i]]* Sin[hoursangletable[[i]]],{i,1,24}];
RAarrowsxtabletext=Table[RAarrowsradiustable [[i]]* Cos[hoursangletable[[i]]],{i,1,24}];
RAarrowsytabletext=Table[RAarrowsradiustable [[i]]* Sin[hoursangletable[[i]]],{i,1,24}];

Set up an x and y table set for the rotating arrow.  Should start and finish with the same values.

twopixtabletext=Table[ Cos[twopiangletable[[i]]],{i,1,25}];
twopiytabletext=Table[ Sin[twopiangletable[[i]]],{i,1,25}];

Zodiac

Zodiactable={"Virgo","Libra","Scorpius","Sagittarius","Capricornus","Aquarius","Pisces","Aries","Taurus","Gemini","Cancer","Leo"};
Zodiacradiustable=Table[2.2,{12}];
xZodiactabletext=Table[Zodiacradiustable [[i]]* Cos[angletable[[i]]+Pi/12],{i,1,12}];
yZodiactabletext=Table[Zodiacradiustable [[i]]* Sin[angletable[[i]]+Pi/12],{i,1,12}];
Zodiaccircletable=Table[Text[Zodiactable[[i]],{xZodiactabletext[[i]],yZodiactabletext[[i]]}],{i,1,12}];

Earths

Earths=Table[Disk[{xtable[[i]],ytable[[i]]},0.2],{i,1,25}];
Observers=Table[Disk[{xtable[[i]]+xoffsettable[[j]],ytable[[i]]+yoffsettable[[j]]},0.05],{i,1,25},{j,1,25}];

Data

hourstable={"RA = 0 hours","RA = 1 hours","RA = 2 hours","RA = 3 hours","RA = 4 hours","RA = 5 hours","RA = 6 hours","RA = 7 hours","RA = 8 hours","RA = 9 hours","RA = 10 hours","RA = 11 hours","RA = 12 hours","RA = 13 hours","RA = 14 hours","RA = 15 hours","RA = 16 hours","RA = 17 hours","RA = 18 hours","RA = 19 hours","RA = 20 hours","RA = 21 hours","RA = 22 hours","RA = 23 hours","RA = 0 hours"};
time={"Midnight","1AM","2AM","3AM","4AM","5 AM","6 AM","7 AM","8 AM","9 AM","10 AM","11 AM",
                    "Noon","1 PM","2 PM","3 PM","4 PM","5 PM","6 PM","7 PM","8 PM","9 PM","10 PM","11 PM","Midnight"};
date={"September, 23","October, 9","October, 25","November, 9","November, 24","December, 8","December, 21","January, 4","January, 18","February, 1","February, 16","March, 4",
                    "March, 20","April, 5","April, 22","May, 7","May, 23","June, 6","June, 21","July, 5","July, 20","August, 4","August, 20","September, 6","September, 23"};  (*dates are from Earth centered Ephemeris for 2010*)

Make the interactive

trunc[x_,v_]:= If[ x>= v,x-2(x-v),x] (*isosceles triangle function*)
q=Magnify[Manipulate[
Show[

Graphics[Zodiaccircletable,BaseStyle->{FontWeight->"Bold",FontSize->12}(*end Graphics*)],

Graphics[{Yellow,Disk[{0,0},0.4]}(*end Graphics*)],
Graphics[Circle[{0,0},1.4](*end Graphics*)],
Graphics[{LightBrown,Earths}(*end Graphics*)],
Graphics[{Arrowheads[.05],Arrow[{{0.0,0.0},{0.7*twopixtabletext[[RAplus1]],0.7*twopiytabletext[[RAplus1]]}}]}(*end Graphics*)],
Graphics[{Arrowheads[.05],Arrow[{{xtable[[date1]],ytable[[date1]]},{xtable[[date1]]+0.7*twopixtabletext[[RAplus1]],ytable[[date1]]+0.7*twopiytabletext[[RAplus1]]}}]}(*end Graphics*)],
Graphics[{Blue,Earths[[date1]]}(*end Graphics*)],
Graphics[Observers[[date1,Mod[time1+date1-2,24]+1]](*end Graphics*)],
Graphics[Text[date[[date1]],{-1.8,-2.0}](*end Graphics*)],
Graphics[Text[time[[time1]],{0.0,+1.8}](*end Graphics*)],   
Graphics[Text["Δ = ",{-0.2,-0.7}](*end Graphics*)],
Graphics[Text[-1+Abs[trunc[Mod[-RAplus1+time1+date1-1,24]+1,13]],{0.0,-0.7}]](*end Graphics*),
Graphics[Text["dates from Earth centered Ephemeris for 2010",{0.0,-3.0}](*end Graphics*)],   
Graphics[Text[hourstable[[RAplus1]],{+1.8,-2}],BaseStyle->{FontWeight->"Bold",FontSize->18}],
PlotLabel->"Date, Time, Right Ascension Calculator 2010"(*end Show*)],
{{RAplus1,1,"Right Ascension"},1,25,1,Appearance->"Labeled"},{{date1,1,"Date"},1,25,1,Appearance->"Labeled"},{{time1,1,"Solar Time"},1,25,1,Appearance->"Labeled"},ControlPlacement-> Left,SaveDefinitions->True(*end Manipulate*)] ,1.5 (*end magnify*)]