忍者ブログ
鋼鉄の咆哮 早く新作だして。・゚・(ノД`)・゚・。
[533]  [532]  [531]  [530]  [529]  [528]  [527]  [526]  [525]  [524]  [523
×

[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 ] )関数を使いましょう。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新CM
[05/08 NONAME]
[05/05 wakaiy]
[08/02 毒さん]
[08/02 serani]
[02/26 毒さん]
最新TB
プロフィール
HN:
毒さん
性別:
非公開
バーコード
ブログ内検索
忍者ブログ [PR]