時計

現在時刻を取得して動く時計です。
矢印のオブジェクトをRotateの行列をかけることで変換する、というまどろっこしいことをしていますが。

一応ソース。

Dynamic[Refresh[
  a = DateString[TimeZone -> 9];
  mySec = ToExpression[DateString["Second"]];
  myMin = ToExpression[DateString["Minute"]];
  myHour = ToExpression[DateString["Hour"]];
  
  HourArrow = {{0, 0}, {0, 0.4}};
  MinuteArrow = {{0, 0}, {0, 0.8}};
  SecondArrow = {{0, 0}, {0, 1}};
  
  A[t_] := {
    {Cos[t], -Sin[t]},
    {Sin[t], Cos[t]}};
  
  
  SecondArrow' = Map[A[-mySec/60*2 Pi].# &, SecondArrow];
  MinuteArrow' = 
   Map[A[-(myMin + mySec/60)/60*2 Pi].# &, MinuteArrow];
  HourArrow' = Map[A[-(myHour + myMin/60)/12*2 Pi].# &, HourArrow];
  
  Graphics[
   {Circle[{0, 0}],
    Thick,
    Arrow[HourArrow'],
    Arrow[MinuteArrow'],
    Thickness[0.005],
    RGBColor[{0, 0, 1, 0.4}], Arrow[SecondArrow'],
    
    RGBColor[{0, 0, 0, 1}], Text[Style[a, FontSize -> 20], {1, -1}]
    }
   ], UpdateInterval -> 1]
 ]