diff --git a/Demo/Program.cs b/Demo/Program.cs index da9365f..4d7ff81 100644 --- a/Demo/Program.cs +++ b/Demo/Program.cs @@ -8,13 +8,15 @@ static void Main() { var expression = "0-30/5 * * * * *"; Console.WriteLine(expression); - var timer = new CronTimer(expression, "Europe/Amsterdam", includingSeconds: true); + var timer = new CronTimer(expression, "Asia/Hong_Kong", includingSeconds: true); timer.OnOccurence += (s, ea) => Console.WriteLine($"{ea.At:T} - {DateTime.Now}"); timer.Start(); while (Console.ReadKey().Key != ConsoleKey.Escape) { } + + timer.Stop(); } } } diff --git a/src/CronTimer.cs b/src/CronTimer.cs index 1295a36..00357a8 100644 --- a/src/CronTimer.cs +++ b/src/CronTimer.cs @@ -59,7 +59,8 @@ TimeSpan CalculateDelay() TimeSpan delay; if (tz != UTC) { - delay = Next.ToUniversalTime() - nowUtc; + var nextUtc = TimeZoneInfo.ConvertTimeToUtc(Next, tzi); + delay = nextUtc - nowUtc; } else {