我在C#.NET中编写了一个Windows服务,每个小时都会触发...我想在xyz日期每个月向我的经理发送一封邮件....这个任务每个月都在同一个地方重复约会...所以任何人都可以告诉我该怎么做..?我的意思是说我将编写的代码块在每个月的同一天执行...
答案 0 :(得分:2)
这将为您提供天数/小时/分钟/等的TimeSpan。直到下个月的第一天:
TimeSpan ts = DateTime.Now.AddDays(
(DateTime.Now.Day - 1) * -1).AddMonths(1) - DateTime.Now;
在下个月的第一天午夜使用DateTime.Today
。
您可以使用它来设置计时器的间隔。
答案 1 :(得分:1)
这看起来像是quartz.net
的完美用法var schedulerFactory = new StdSchedulerFactory();
var scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
var jobDetail = new JobDetail("myJob", null, typeof (MyFooImplementation)); // MyFooImplementation needs to impelement IJob
var trigger = TriggerUtils.MakeMonthlyTrigger("myJobTrigger", 1, 0, 0);
scheduler.ScheduleJob(jobDetail, trigger);
可以找到.MakeMonthlyTrigger
上的更多信息here
否则我会得到Windows任务调度程序......这种老式的方式:)