calendar.vbs

calendar(1) はなかなか便利だし、シンプルさが Unix らしくて好きなコマンドなのだが、Redhat には入っていないし、あまり知られていないようだ。
これを Windows でも使いたいので VBScript で書いてみた。スタートアップに入れるとちょうどいいかも。
カレンダーファイルのフォーマットは、VBScript で処理しやすいように少し変えた。
バグあるかも。

CALENDAR_FILE = "c:\calendar.txt"

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(CALENDAR_FILE) Then 
	Set file = fso.OpenTextFile(CALENDAR_FILE)

	While Not file.AtEndOfStream
		Lin = file.ReadLine
		Lin = Replace(Lin, Chr(9), "    ")
		If InStr(Lin, ",") > 0 Then
			Fields = Split(Lin, ",", 2)

			a = Split(Fields(0), "/")
			b = Split(Date(), "/")
			ShowMsg = False
			Y = Empty
			M = Empty
			D = Empty
			If UBound(a) >= 2 Then
				Y = Trim(a(0))
				M = Trim(a(1))
				D = Trim(a(2))
			ElseIf UBound(a) >= 1 Then
				Y = Trim(b(0))
				M = Trim(a(0))
				D = Trim(a(1))
			Else
				WDayNames = Array("sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday")
				WDay = Weekday(Date())
				If WDayNames(WDay - 1) = LCase(Trim(a(0))) Then
					ShowMsg = True
				End If 
			End If

			If Y = b(0) And M = b(1) And D = b(2) Then
				ShowMsg = True
			End If
				
			If ShowMsg Then
				MsgBox Trim(Fields(1))
			End If
		End If
	Wend

	file.Close 
End If

カレンダーファイルのサンプル。

friday, 金曜です。
   11  / 17 , もげもげ


 2006/11/17,カンマも,含められます。