0

我正在用 c# 编写一个应用程序,该应用程序需要根据添加项目的月份等每两三个月执行一次代码。例如,如果月份是 2 月,它将表示为值为 2 的 int。因此,它需要在 april(4)、june(6) 等运行。我真的不知道该怎么做,任何帮助真的很棒

这是我到目前为止所拥有的

 // month is febuary
string month = monthAsInt(date);
for(int w= month; month <= 12; w++)
{
 w++;
  //thats not going to work if month is greater than 0
  if(?)
  {
   //execute
  }
}
4

4 回答 4

1

最优雅的解决方案是将DateTime对象存储在某处(例如,在文件中对其进行序列化和反序列化:http: //msdn.microsoft.com/en-us/library/vstudio/ms233843.aspx)并每次将其与当前进行比较应用程序加载。

于 2013-11-11T10:49:21.783 回答
0

我建议不要发明你的函数来使用DateTime(因为那里有很多不平凡的东西),而只是简单地传递给 .NET 库函数,比如:

日期时间.AddMonths

日期时间.AddDays

所以首先构造你的“开始”DateTime对象,然后使用这些函数将日期转移到所需的边缘。

于 2013-11-11T10:48:05.033 回答
0
int monthJump = 2;
int month = monthAsInt(date);
for(int w= month; w <= 12; w = w + monthJump){
    //Execute
}

因此,为此,您说它需要每 2 或 3 个月工作一次。您只需在变量中设置该值,monthJump它就会在FOR循环中为您执行跳转

我假设,基于这个方法名称

string month = monthAsInt(date);

应该

int month = monthAsInt(date);
于 2013-11-11T10:52:47.613 回答
0

这可能很有用。只需验证月差是 2 的倍数:

 DateTime dateAdded; // Your date
 DateTime currentDate = DateTime.Now;

 int dateAddedMonth = dateAdded.Month;
 int currentDateMonth = currentDate.Month;

 int difference = dateAddedMonth - currentDateMonth;
 if (difference % 2 == 0)
 {
    // Do your stuff
 }
于 2013-11-11T10:54:27.123 回答