RT,我需要每周清空一下上周的数据统计表,就判断在每周一,程序第一次启动时。。但这方法怎么才能以【周】为时间线执行呢? int i = 0; DayOfWeek weekday = System.DateTime.Now.DayOfWeek; if (weekday.ToString() == "Monday")
{
i = DAL.Am_ProductQuantityDAL.Clear();
i = DAL.Stock_ProductQuantityDAL.Clear();
}
{
i = DAL.Am_ProductQuantityDAL.Clear();
i = DAL.Stock_ProductQuantityDAL.Clear();
}
解决方案 »
- 请问谁有具体到小时、分钟,秒的时间(日历)控件?
- window.location怎么象Open一样弹出新窗口
- .net 网站发布一个很奇怪的问题。。。。请看
- 请问有asp.net 可用的treelist控件吗?
- label1.innerHtml=str, str是从数据库中取出来的html字符串,为什么显示时解释不了html字符串,还包括像<p>,<br>等标记
- 如何在gridview添加滚动条
- 在Global.asax里设置Session和在登陆页里设置Session有什么区别吗?
- 还是相信csdn的c友们,推荐个网站访问统计系统吧
- DayOfWeek不能显示中文的问题
- 为什么我不能用Page.Navigate("");
- form 里面有客户端控件和服务器控件
- 求助
{
// 在应用程序启动时运行的代码
try
{
System.Runtime.Remoting.RemotingConfiguration.Configure(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "web.config"), false);
//创建一个新的Timer实例
System.Timers.Timer sysTimer = new System.Timers.Timer();
//将sysTimer_Elapsed指定为计时器的 Elapsed 事件处理程序
sysTimer.Elapsed += new System.Timers.ElapsedEventHandler(sysTimer_Elapsed);
//间隔多长时间执行操作,此单位为毫秒
sysTimer.Interval = (60 * 60 * 1000)*168;//(168小时执行一次)
// sysTimer.Interval=60 * 1000;//测试1分钟
sysTimer.AutoReset = true;
sysTimer.Enabled = true;
}
catch
{
LogHelper.Write("remoting sever fail ");
}
}
private void sysTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
//每周清空一下上周的数据统计表的代码写在这里
}
catch (Exception ex)
{
LogHelper.Write(ex);
}
}
//这个去读取数据统计表中最早的时间, 类似(select min(datetime) from table)
DateTime referTime;
//这个计算出本周一0点的时间
DateTime datetime = DateTime.Today.AddDays(1 - (double)(DateTime.Today.DayOfWeek));
//判断出数据表里的时间比这个星期一小, 清空数据表
if (referTime < datetime)
{
i = DAL.Am_ProductQuantityDAL.Clear();
i = DAL.Stock_ProductQuantityDAL.Clear();
}
把上面的代码加到程序打开时就要运行的地方。 比如Main()或者第一个要加载的窗体的Load过程里。
然后每次你打开的时候就会去运行, 不必要一直开着
我刚才试验了一下, 还是有问题。 因为星期天的值是0, 所以每次星期天就会执行清空。解决办法有二种。 一种是每个星期天时进行清空。 计算周日0点语句是:
DateTime datetime = DateTime.Today.AddDays(0 - (double)(DateTime.Today.DayOfWeek));
第二种方式是把星期天视为上周最后一天
当前时间为周日时, 这里
DateTime datetime = DateTime.Today.AddDays(0 - (double)(DateTime.Today.DayOfWeek));
算出来的是明天, 加入一个判断, 今天是星期天时, 周一再减七天。
if(DateTime.Today.DayofWeek == 0)
{
datetime.AddDays(-7)
}两种状态的判断条件:
if (referTime < datetime)