我想创建某种程序,让我想起某些日期(等等) 例如
如果是IsDate(2014年12月6日)那么
msgbox(“今天是你的生日”)
ENDIF
所以有可能以某种方式编写代码来每年执行此操作而无需编写10-20行代码..(像这样)
如果IsDate(12/6 / 2015)那么
如果是IsDate(2016年6月6日)那么
如果是IsDate(2017年6月12日)那么
所以,同一天和月,但不同年份:D
答案 0 :(得分:4)
Date
在当天和当月拥有属性。您可以比较“闹钟日期”的.Day
和.Month
属性以及当前日期,看看它是否应该触发。
MSDN上的文档提供了更多信息。 http://msdn.microsoft.com/en-us/library/system.datetime.date(v=vs.110).aspx
示例:
Dim alarmDate As Date = #3/11/2010#
Dim currentDate As Date = Date.Now
If alarmDate.Day = currentDate.Day AndAlso alarmDate.Month = currentDate.Month Then
'Do Something here
End If
您还可以使用扩展方法将这一切提升到新的水平(这可能超出了您当前的应用程序需求):
Imports System.Runtime.CompilerServices
Module ExtensionMethods
<Extension>
Public Function IsSameMonthAndDayAs(d1 As Date, d2 As Date) As Boolean
Return d1.Day = d2.Day AndAlso d1.Month = d2.Month
End Function
End Module
示例:
Dim d As Date = #1/11/2010#
If Date.Now.IsSameMonthAndDayAs(d) Then
'Do something here
End If
更多
如果要将其转换为功能应用程序,可以创建一个新表单,将Timer
组件放到其上,并将其间隔设置为86400000(一天内的毫秒数)。启用计时器并将我的代码放入其Tick
事件中。计时器每天会发射一次并比较两个日期。
注意这不是最好(甚至非常好)的方式。这只是一个如何使用它的例子。