public void StartTick() { Console.WriteLine("闹钟开启:"); TickEventArgs args = new TickEventArgs() { Target = this.alarmTime }; Tick(this, args); }
void TickEv(object sender, TickEventArgs args) { this.currentTime[0] = DateTime.Now.Hour; this.currentTime[1] = DateTime.Now.Minute; this.currentTime[2] = DateTime.Now.Second; if (currentTime[0] == args.Target[0] && currentTime[1] == args.Target[1] && currentTime[2] == args.Target[2]) { this.Alarm(this, args); } else { Console.WriteLine($"{DateTime.Now.ToLongDateString().ToString()} " + $"{currentTime[0].ToString().PadLeft(2, '0')}:" + $"{currentTime[1].ToString().PadLeft(2, '0')}:" + $"{currentTime[2].ToString().PadLeft(2,'0')}"); } currentTime[2] = (currentTime[2] + 1) % 60; currentTime[1] = (currentTime[1] + currentTime[2] == 0 ? 1 : 0) % 60; currentTime[0] = (currentTime[0] + (currentTime[1] + currentTime[2]) == 0 ? 1 : 0) % 24; Thread.Sleep(1000); this.Tick(this, args); }
void AlarmEv(object sender, TickEventArgs args) { Console.WriteLine("Time is up! Time is up!"); }