попробуйте это, если вам нужно вручную установить дату и время начала:
private static DateTime _NextCallTime;
private static int MinSteps = 30;
static void Main(string[] args)
{
// you can manually set start Date and Time
_NextCallTime = DateTime.Parse ("2020/5/12 12:35");
System.Timers.Timer timer = new System.Timers.Timer()
{Interval= 31000, Enabled = true};
timer.Elapsed += timer_Handler;
Console.ReadLine();
}
// this timer checks every 31 seconds
static void timer_Handler(object sender, System.Timers.ElapsedEventArgs e)
{
if (DateTime.Now.Date == _NextCallTime.Date
&& DateTime.Now.Hour == _NextCallTime.Hour
&& DateTime.Now.Minute == _NextCallTime.Minute)
{
_NextCallTime = _NextCallTime.AddMinutes(MinSteps);
load_to_DB();
}
}
// This method is called every 30 mins at spesific periods (12:35 - 1:5 ...)
static void load_to_DB()
{
//method
}
также, если вам нужно просто установить только время начала, а не дату:
// you can manually set start Time
_NextCallTime = DateTime.Parse($"{DateTime.Now.ToString("yyyy/MM/dd",System.Globalization.CultureInfo.InvariantCulture)} 12:35");