鋼鉄の咆哮 早く新作だして。・゚・(ノД`)・゚・。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
よくある、ツェラーの公式を使って月初日の曜日を求める方法メモ。
-----
Opt('MustDeclareVars', 1)
Opt("WinTitleMatchMode", 4)
Func main()
Local $lastDay[12] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
Local $day = @MDAY, $start, $i
If GetLeapYear(@YEAR) == 1 Then $lastDay[1] = 29
;月頭の曜日を求める
$start = GetMonthlyDayOfTheWeek(@YEAR, @MON, 1)
EndFunc
Func GetMonthlyDayOfTheWeek($year, $mon, $day)
Local $r
If $mon < 3 Then
$mon += 12
$year -= 1
EndIf
$r = mod(($year +Int($year / 4) - Int($year / 100) + Int($year / 400) + Int((13 * $mon + 8) / 5) + $day), 7)
Return $r
EndFunc
;閏年を求める関数
Func GetLeapYear($year)
Local $r
If ((mod($year, 4) == 0) And (mod($year, 100) <> 0)) Or (mod($year, 400) == 0) Then $r = 1
Return $r
EndFunc
-----
年月日をマクロ@YEAR、@MON、@MDAY
余 は AutoIt のオペレータには % がないので mod(value1, value2)関数を利用する。
除算の際はInt( expression [, flag ] )関数を使いましょう。
-----
Opt('MustDeclareVars', 1)
Opt("WinTitleMatchMode", 4)
Func main()
Local $lastDay[12] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
Local $day = @MDAY, $start, $i
If GetLeapYear(@YEAR) == 1 Then $lastDay[1] = 29
;月頭の曜日を求める
$start = GetMonthlyDayOfTheWeek(@YEAR, @MON, 1)
EndFunc
Func GetMonthlyDayOfTheWeek($year, $mon, $day)
Local $r
If $mon < 3 Then
$mon += 12
$year -= 1
EndIf
$r = mod(($year +Int($year / 4) - Int($year / 100) + Int($year / 400) + Int((13 * $mon + 8) / 5) + $day), 7)
Return $r
EndFunc
;閏年を求める関数
Func GetLeapYear($year)
Local $r
If ((mod($year, 4) == 0) And (mod($year, 100) <> 0)) Or (mod($year, 400) == 0) Then $r = 1
Return $r
EndFunc
-----
年月日をマクロ@YEAR、@MON、@MDAY
余 は AutoIt のオペレータには % がないので mod(value1, value2)関数を利用する。
除算の際はInt( expression [, flag ] )関数を使いましょう。
PR
この記事にコメントする