我在VS中为sharepoint创建一个计时器作业,我想创建一个只有月和日的Date对象.原因是因为我希望这份工作每年在特定日期开展.
如果使用日期对象是不可能的,那么你将如何做到这一点呢?
这是我得到的:
DateTime value = new DateTime(2010, 1, 18);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 46
好吧,你可以创建自己的类型 - 但DateTime 总是有一个完整的日期和时间.你甚至不能使用"只是一个约会" DateTime- 你最接近的就是DateTime在午夜时分.
你可以随时忽略这一年 - 或者当前年份:
// Consider whether you want DateTime.UtcNow.Year instead
DateTime value = new DateTime(DateTime.Now.Year, month, day);
Run Code Online (Sandbox Code Playgroud)
要创建自己的类型,您可以始终只DateTime在一个结构中嵌入一个,并在诸如此类的调用上代理AddDays:
public struct MonthDay : IEquatable<MonthDay>
{
private readonly DateTime dateTime;
public MonthDay(int month, int day)
{
dateTime = new DateTime(2000, month, day);
}
public MonthDay AddDays(int days)
{
DateTime added = dateTime.AddDays(days);
return new MonthDay(added.Month, added.Day);
}
// TODO: Implement interfaces, equality etc
}
Run Code Online (Sandbox Code Playgroud)
请注意,您选择的年份会影响该类型的行为 - 2月29日是否应该是有效的月/日值?这取决于年份......
我个人认为我不会为此创建一个类型 - 相反,我有一个方法可以返回"下次运行程序时".
| 归档时间: |
|
| 查看次数: |
102792 次 |
| 最近记录: |