忍者ブログ

2024-04-18(Thu)

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2007-07-28(Sat)

曜日の求め方~今日は休みではありません。

2007夏モデルFMV新登場


はい。電算室です。今日は何が起きるのでしょうか。

曜日によって処理するJOBを変えることはよくあります。
また、土日や祝日の場合は処理をしないように設定することもよくあります。

と、いうことはシステム日付を取得し、それが何曜日かを知る必要がありますが、それはプログラムによって何曜日かを知ることができるのです。

その方法は、ツェラー(Zeller)の公式を使います・・・。

拍手[1回]

ツェラー(Zeller)の公式は、

W = (Y+int(Y/4)-int(Y/100)+int(Y/400)+int(2.6*M+1.6)+D) % 7

という一つの式で表されます。
西暦Y年M月D日の曜日W として、
曜日は、W = 0:日 1:月 2:火 3:水 4:木 5:金 6:土
となるのです。ちなみに、%7 とは、7で割った余りの数ということです。
ただし、1月と2月は前年の13月、14月として計算します。


ちょっとやってみましょうか。(intは整数値)
例えば、2007年7月16日は・・・
(2007 + int(2007/4) -int(2007/100) +int(2007/400) +int(2.6*7 + 1.6) + 16)
=2007 + 501 - 20 + 5 + 19 + 16 
=2528
で、
2528 ÷7 = 361.14285≒361余り1
ということで、余り1=月曜日 となります。
カレンダーを見て確かめてみましょう。

と、いうことで、コンピュータのシステム日付さえ間違えていなければ、本日は何曜日かを算出し、今日は処理する、しないを判断つけられるのです。

が・・・
先程求めた7月16日・・・。えぇ。海の日で休みでした。
通常祝日は決まった日ですが、
成人の日 1月の第2月曜日
海の日  7月の第3月曜日
敬老の日 9月の第3月曜日
体育の日は10月の第2月曜日
と、いうようにハッピーマンデーということで決まった日にできません。
あと、秋分の日、春分の日もそうですね。

これもまたプログラムで判断させるのですが・・・。




誰が組んだか知りませんが、私の会社のシステムのプログラム、間違っていました(。、)シクシク..




7月16日を休みとせずに、7月23日を休みとしてしまったのです。


先程曜日を求めた上に、何日かの範囲の間であれば休みとするという考え方。

例えば、7月、9月で、月曜日でかつ15日以上21日以下であれば休みとします。

これが、16日より大きく、24日より小さいと組まれていたのです!!



誰が組みやがった(-_-#)



おかげで、23日に処理されるはずのバッチが流れずあわてて手動で流したものの、流し漏れがあり冷や汗ものでした (ノ><)ノ ひいぃぃ~や


何日から何日の間という考え方が難しいのであれば、日を7で割り、小数点以下を切り上げた値が、第何週という考え方でもいいのです。

ロジック的(cobol)にはこうなります。
M  月
DD  日
W    曜日 (先程のツェラーの公式で算出済み)
X     第何週

X  =  D / 7 + 0.9    0.9で少数点以下切り上げ
IF   M = 1 OR 10  AND  W = 1  AND  X = 2
     →休み

IF  M = 7 OR 9  AND  W = 1  AND  X = 3       
  →休み

そういえば、11月23日をハッピーマンデーにしようという動きがあったようですが、連休になるのはうれしいのですが、システム屋からすると






ありがた迷惑です(-_-#)






まぁ、その日は皇室の大事な祭事(新嘗祭)があるので流れましたが。


ちなみに、春分の日、秋分の日は別の計算式によります。
それはまた後日。
PR

この記事にコメントする

Name
Title
Mail
URL
Comment
Pass
Pictgram
Vodafone絵文字 i-mode絵文字 Ezweb絵文字

運用スケジュール

2007-07-28 21:29

運用スケジュールは難しいですよね。
勝手に休みなんか変更するなよ!!って、言ってやりやい気持ち、分かりますね。

ちなみに、”システム管理者 感謝の日”ってご存知ですか?
日ごろ誰からも感謝されず、日夜コンピュータの管理をしているのに、ユーザからはコンピュータは動いていて当たり前と思われて、全く感謝されない、システム管理者の皆様を感謝する日が、
”システム管理者 感謝の日”で、
毎年7月の最終金曜日を、”システム管理者感謝の日”って定めています。
今年は、昨日の7月27日がその日にあたります。
一度、ご確認を。

http://triring.net/sysadminday/

ついてる、ついてる

Re:運用スケジュール

2007-07-28 23:11

>ちなみに、”システム管理者 感謝の日”ってご存知ですか?

あぁ、そうでした。
pooh70hさんに教えてもらって2006/06/07にもコメントしていました。
詳しくはこちら
システム管理者感謝の日
http://hidensan.blog.shinobi.jp/Entry/34/

この記事へのトラックバック

この記事にトラックバックする

Amazon

PR

情報サービス

楽天

ソフト関連

メーカー直販PC

周辺機器

ランキング

プロフィール

HN:
NORI
性別:
男性
趣味:
車でどこへでも
自己紹介:
文学部卒業ながら、ひょんなことからシステム会社に就職。
しかしながらあまりの激務に退職。もうシステム系はいやだと思っていたが、ひょんなことから企業の電算室に勤務することとなる。

カレンダー

03 2024/04 05
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

ブログ内検索

Google
Web ブログ内

最新TB

アクセス解析