public void Init()
        {
            Beijing = ConcreteCityObserver.newInstance("Beijing", 8);
            London = ConcreteCityObserver.newInstance("London", 0);
            Moscow = ConcreteCityObserver.newInstance("Moscow", 4);
            Sydney = ConcreteCityObserver.newInstance("Sydney", 10);
            NewYork = ConcreteCityObserver.newInstance("NewYork", -5);

            clock = ConcreteClockSubject.newInstance();

            attachObervers();
            clock.setUtcTime(DateTime.Parse("2013-9-2 0:00:00"));
        }
 /// <summary>
 /// manully adjust time, and notity the subject with utcTime
 /// </summary>
 /// <param name="clock">notity the subject with utcTime</param>
 /// <param name="time"></param>
 public void adjustTime(ConcreteClockSubject clock, DateTime time)
 {
     clock.setUtcTime(time.AddHours(-this.utc));
 }
 /// <summary>
 /// manully adjust time, and notity the subject with utcTime
 /// </summary>
 /// <param name="clock">notity the subject with utcTime</param>
 /// <param name="time"></param>
 public void adjustTime(ConcreteClockSubject clock, DateTime time)
 {
     clock.setUtcTime(time.AddHours(-this.utc));
 }