【愛知】 「うるう年」認識せず 豊川など3市3町、システム障害で窓口停止
1 :
かしわ餅φ ★:
29日朝、豊川市など東三河の3市3町の住民記録システムで障害が起き、
住民票発行など窓口業務の一部が出来なくなった。1時間以内にすべて復旧したが、
原因は、4年に1度の「うるう年」を意識しなかったシステムのプログラムミスだった。
障害が起きたのは、豊川、新城、蒲郡市、小坂井、設楽、東栄町。6市町は、
システムのプログラムを作った豊橋市のソフト会社に連絡して調べたところ、
日時を管理する「タイムリー」というプログラムのミスが原因と判明した。
日付入力の際、1年前から1年後までの範囲内でチェックする手順があり、
この日がうるう年の2月29日で、昨年も来年も2月29日がないため、システム
立ち上げ時に「エラー」になって障害が起きたという。
豊川市では、20人ほどが住民票や印鑑証明の発行などの申請に来たが、
3人が自宅配達を依頼し、6、7人は張り紙や職員の説明で申請せずに立ち去ったと
いう。新城市では、住民票交付に訪れた6人のうち2人に手書き住民票を発行、
4人は申請だけを受け付け、復旧後に交付した。
http://www.yomiuri.co.jp/e-japan/aichi/news/20080301-OYT8T00018.htm
2 :
名無しさん@八周年:2008/03/01(土) 11:47:26 ID:c2XbKgcY0
日暮問題。
3 :
名無しさん@八周年:2008/03/01(土) 11:48:14 ID:4Kyq13Pk0
うるうる
365.2522
全然タイムリーじゃないじゃん。
6 :
名無しさん@八周年:2008/03/01(土) 11:49:03 ID:BdhMAsYj0
いまだにうるう年をまともに実装できないやつがいるのが驚きなんだが
一体どうなってるんかね。
7 :
名無しさん@八周年:2008/03/01(土) 11:49:25 ID:flaT0lYj0
しょべー
作ったのどこの会社だよ?
前にバージョンアップで手を入れてたアプリ、
「4年ごとにうるう年、でも100で割れるときはうるう年じゃない」
ってコーディングされてた。
1900年代に見つけといてよかったわ。
10 :
名無しさん@八周年:2008/03/01(土) 11:52:33 ID:nnk/+Q140
住民票管理システムごときを市町村ごとに作ってんじゃねーよ。
初心者プログラマな俺がきましたよ
自分の作品でもうるう年計算できてるのに・・・
ん?計算してないって事か・・・
12 :
名無しさん@八周年:2008/03/01(土) 11:52:53 ID:prVrv+xd0
人として先ず常識に欠けるSE乙 死んでいいよwwww
こういうプログラムって
市町村ごとに発注してるの?
えらい無駄な気がする
14 :
名無しさん@八周年:2008/03/01(土) 11:53:17 ID:+V3IwlP00
プログラムのバグと言うより
運用上の設定ミスっぽいな
プログラムの基礎だと思うのだが・・・。
16 :
名無しさん@八周年:2008/03/01(土) 11:53:50 ID:+05KOhWv0
ボケ過ぎ
お役所や国関係の企業って和暦を使いたがるから
それが原因じゃね?
いまどき学生でもこんなミスしないと思うが
>>9 400で割り切れるときはうるう年なので、
2000年はうるう年だったのだが、
>9のシステムは無事だったのか?
20 :
名無しさん@八周年:2008/03/01(土) 11:55:34 ID:J6ZZeeMP0
21 :
名無しさん@八周年:2008/03/01(土) 11:56:14 ID:anTOOSDb0
>>13 国が一元管理して自治体に配布すると公共事業の意味がなくなっちゃうから。
日本全国に隈無く税金ばらまかなきゃw
入力画面に「うるう年ボタン」をつけて、今年がうるう年のときはボタンを押すようにすれば良かったのに。
23 :
名無しさん@八周年:2008/03/01(土) 11:57:24 ID:yf7MTjy10
また間抜けなシステム組んだもんだな
26 :
名無しさん@八周年:2008/03/01(土) 11:59:15 ID:OkdwXWfS0
>>9 400年に一度はやっぱりうるう年とはコーディングされてなかったのか。
俺の地元はなんて間抜けたことしてるんだ…でも、そんな地元が好きだぜ
28 :
名無しさん@八周年:2008/03/01(土) 12:02:19 ID:OkdwXWfS0
同じシステムを5年以上をつかっちゃだめ。
そのソフト会社が5年後に存在している保証は無いよ。
まあうるう年意識してなかったのも馬鹿だが
うるう年計算を自慢げに語ってるこのスレのSEもレベル低そうだな。
>>13 市町村ごとに発注している。
大抵は地域で中核となる市が作った第三セクター系のソフト会社が請け負っている。
NECか富士通のシステムを買ってオプションを開発し、データ入力や維持メンテで食いつないでいる。
マーケットが元々小さいので、複数の自治体に同じソフトを納品してギリギリ採算に載せている。
ここ数年、自治体の統合が進んでしまった売上げが半減している。
派遣社員のオペレーターにシフトし始めているから、こういう基本的ミスや
個人情報の漏洩(情報転売)が激増するだろうね。
31 :
名無しさん@八周年:2008/03/01(土) 12:04:08 ID:mmbz/khM0
きのうはNTTの4th mediaも障害が起きたらしいな
ちゃんと教育しろよ、
っつーか言われる前に気づけ
ところで法的に「1年」というときは365日固定なのか閏年またぎだけ366日なのか
35 :
名無しさん@八周年:2008/03/01(土) 12:08:42 ID:mmbz/khM0
同様に、今日はどこかで2月30日問題が起きてるかもしれないな
2月99日までカウントアップし続けたり
36 :
名無しさん@八周年:2008/03/01(土) 12:08:48 ID:niwvGCCe0
>>33 そんな自慢げにイコールつけられても・・・
専ブラくらいいれようぜ・・・
>>19 直した。
>>26 まだ何も考えずに「4で割れればうるう年」にしといてほしかった。
今年から祝日の扱いが変わるからそっちも気になるね。
おそらく法制改正前のSH700iSのカレンダーは
5/6が平日扱いですよ。
38 :
名無しさん@八周年:2008/03/01(土) 12:14:28 ID:sVDSLQdk0
催眠術とか超スピードかじゃねえ恐るべしうるう年。
39 :
名無しさん@八周年:2008/03/01(土) 12:15:33 ID:0dBakIOz0
単純なバグに限って凄まじい被害が出る件
流石にうるう年でコケた事は無いが、売上を分析する帳票とかで、前年対比をどうするか、悩む事は多い。
前年対比は前年の同じ曜日で月日が一番近い日付を使って計算する、って仕様で運用可能or納得して呉れるならいいんだけど、そういかない場合もある訳で。
お客さんと一緒に散々と悩んだ挙句「今年はとりあえず前年対比空白にしときましょーか」なんてやる気無い仕様に落ち着いて、なんだかなぁ。
とりあえず昨日ダイソーで買った100均の腕時計はうるう年が認識できなかった。
今日の日付が3月2日になっている人けっこういるんじゃね?
42 :
名無しさん@八周年:2008/03/01(土) 12:17:48 ID:OkdwXWfS0
>>34 そんなもの、この事故を見ればわかるだろ。
次の年の同じ月日までだよ。
43 :
名無しさん@八周年:2008/03/01(土) 12:21:32 ID:RrA78Wwl0
フォートランなんて、いつか円周率の数値が変わっても対応できるように
設計されているというのに・・・
44 :
名無しさん@八周年:2008/03/01(土) 12:21:57 ID:V/PgKNZC0
4で割り切れる年はうるう年
でも100で割れるときはうるう年じゃない
でも400で割れるときはうるう年
でもそんなの関係ねー
45 :
名無しさん@八周年:2008/03/01(土) 12:26:33 ID:SMDh2zTw0
閏年だったなんてすっかり忘れてた。
46 :
名無しさん@八周年:2008/03/01(土) 12:26:34 ID:RrA78Wwl0
うるう日はなぜ二月末日なんだ?
12月末に回して、一年が必ず月曜から始まり日曜で終わるようにし、最後の1日とうるう日は
曜日なしにしてしまえば毎年同じカレンダーを使いまわせるのに。
47 :
名無しさん@八周年:2008/03/01(土) 12:26:47 ID:DpDiODBv0
2ならまんこ
48 :
名無しさん@八周年:2008/03/01(土) 12:28:38 ID:Y/fpoDUj0
>>10 一般的な傾向として、日本人は、人に合わせてシステムをカスタマイズしたがる。
だから同じ業務なのにシステムを個々に発注し、しかも担当者が変わると前任者が決めた仕様では
満足せず、システムを再修正したがる。
一方、欧米では人はシステムに合わせて業務プロセスを見直す傾向が強い。
物づくりが幅を利かした時代は日本式がよかったが、情報が幅を利かす現代では日本式は不利。
日本が没落していった背景にはこういう国民性もある。
49 :
名無しさん@八周年:2008/03/01(土) 12:30:42 ID:XCNc82AhO
Cobol勉強してみようと思って
Cygwin上でtinycobolをコンパイルしようとしたけど
古いdbライブラリがCygwinのGUIツールで取得できない(配布サーバによってはある?)ので
一休み中
>>44 2100年まで使わないつもりなら、ユリウス歴方式の「4で割り切れる年はうるう年」で間に合う。
けど、予想以上に長期間使われて、2100年3月1日にトラブルを起こすんだろうなw
>>46 古代ローマの暦だと、今の3月が年始だった。2月は年末。
1日の時間を正確に24等分しないからこうなるw
52 :
名無しさん@八周年:2008/03/01(土) 12:40:03 ID:bu0DYcvW0
「タイムリー」よりも「タイマー」と呼んだほうが良いプログラムだったみたいだね・・・
53 :
名無しさん@八周年:2008/03/01(土) 12:44:12 ID:RLq5Z5e6O
二月を28とか29日にするなら、31日ある月を30日にして、2月を30日か31日になるようにしたら良いんじゃないでしょうか?
54 :
名無しさん@八周年:2008/03/01(土) 12:45:27 ID:OkdwXWfS0
>>53 カエサル親子のせい。すべては白人のエゴです。
56 :
名無しさん@八周年:2008/03/01(土) 12:48:21 ID:nnk/+Q140
>>48 数年前にコストダウン名目でノーツとR3入れたんだが、
...もうパッケージで使ってる部分なんてないんじゃないかな。
だって、現場が「ああしてくれ」「こうしてくれ」って要望に結局対応しなきゃならんのだもん。
今じゃただのプログラム開発環境。これなら何でもできるVB+SQLServerの方がなんぼがよかった。
57 :
名無しさん@八周年:2008/03/01(土) 12:48:33 ID:TM0fx2Q70
1日は関係ねーだろ、1年が平均約365.242199日なのが問題。端数処理してるだけ。
58 :
名無しさん@八周年:2008/03/01(土) 12:51:25 ID:RLq5Z5e6O
59 :
名無しさん@八周年:2008/03/01(土) 12:51:56 ID:nnk/+Q140
60 :
名無しさん@八周年:2008/03/01(土) 12:52:59 ID:i1MZ64AY0
そういや「4で割り切れたらうるう年、ただし128で割り切れたらうるう年でない」なら、
結構精度いいですね。
>>56 そうやっていつまでもVBのアップデートにお付き合いしてればいいさw
62 :
名無しさん@八周年:2008/03/01(土) 13:01:23 ID:zTiQX7yg0
>1
日付型にして3月1日からマイナス1にしてないの?
63 :
名無しさん@八周年:2008/03/01(土) 13:02:15 ID:lSBYNhRA0
閏年とかけ。ユトリ℃もめ。
俺も2月が短いこと、すっかり忘れてた!
2月末日までの、ブックオフの100円券が無駄になっちまった
まだ29日だからって安心してたwww
65 :
名無しさん@八周年:2008/03/01(土) 13:07:25 ID:NafWIuav0
他の隠れたミスも疑った方が良さそうだな。
66 :
名無しさん@八周年:2008/03/01(土) 13:10:38 ID:AsHuWaFCO
>>64 あぁ〜
俺も無駄になっちまったWW
500円分くらい溜め込んでたのに
67 :
名無しさん@八周年:2008/03/01(土) 13:15:09 ID:KlxfFSwn0
アマゾンも、発送日が3月1日が4月1日になって、びっくりした。
68 :
名無しさん@八周年:2008/03/01(土) 13:16:19 ID:uYFqk5WH0
そういや大学生の時に2/29が誕生日の奴がいたなあ
70 :
名無しさん@八周年:2008/03/01(土) 13:20:50 ID:L/9VkZy/0
うるう年に馬鹿になるんだな?
なんだ世界のナベアツか…
>>62 20080228 みたいな文字列で持ってたりするんだよ
72 :
名無しさん@八周年:2008/03/01(土) 13:21:55 ID:lv66QMpx0
400年に1回の閏年は必ず火曜日なんだってな。
73 :
名無しさん@八周年:2008/03/01(土) 13:21:59 ID:5Pe8UvsA0
一日の長さを24時間ではなく1年÷365にすれば解決
74 :
名無しさん@八周年:2008/03/01(土) 13:24:03 ID:BcP13qHE0
別にうるう年なんかなくても
徐々に四季がずれていくのを楽しめばいいんちゃう?
つか、単純にシステム時間拾えよ。
アホかと。
76 :
名無しさん@八周年:2008/03/01(土) 13:24:52 ID:TvHRNm7Q0
うるう年廃止すればいいだろ
77 :
名無しさん@八周年:2008/03/01(土) 13:26:20 ID:vwMdKKc20
こんなの一ヶ所に集めた方がいいのではないか
バラバラにやっているのでは、まあ役所は縄張り意識が強いからな
78 :
名無しさん@八周年:2008/03/01(土) 13:26:53 ID:2JQYb+450
馬鹿?
79 :
名無しさん@八周年:2008/03/01(土) 13:27:20 ID:29ujakgo0
うる星やつらに見えた
つか今ATOKは「うるせいやつら」を一発で変換したぜ?
俺こんなの登録したかな?
80 :
名無しさん@八周年:2008/03/01(土) 13:27:37 ID:GCRkIu7R0
81 :
名無しさん@八周年:2008/03/01(土) 13:27:53 ID:dbYYJ6dJ0
4で割れる年はうるう年
でも100で割れたら平年
だが、400でも割れたらうるう年
2000年は3つ目まで考える必要がありました
byトロ・ステ
82 :
名無しさん@八周年:2008/03/01(土) 13:28:47 ID:nZA6kl/RO
うるう年を猫年と呼ぼうぜ
83 :
名無しさん@八周年:2008/03/01(土) 13:29:03 ID:adEI8R070
ゆとりプログラマ
84 :
名無しさん@八周年:2008/03/01(土) 13:29:18 ID:nnk/+Q140
>>79 試しにやってみたら「売る正奴ら」
間違いなくお前はどこかで変換してたんだよ。
売る正や面
87 :
名無しさん@八周年:2008/03/01(土) 13:32:43 ID:39Ovot3N0
今時こんなシステム障害ってw
ミスが起きるときはこんなもんだ。
容易い場所、分かっているはずの場所に潜んでいるんだよね。
他山の石として気をつけよう。
89 :
名無しさん@八周年:2008/03/01(土) 13:35:47 ID:adEI8R070
ゆとり教育でうるう年は4年に一度と教えてるんだろ?w
ちがうのか?
91 :
名無しさん@八周年:2008/03/01(土) 13:38:08 ID:adEI8R070
違った。
2月は28日って教えてるんだろうな。
92 :
名無しさん@八周年:2008/03/01(土) 13:38:16 ID:TYLnfKCg0
プログラマーもゆとりだから駄目だね
93 :
名無しさん@八周年:2008/03/01(土) 13:39:23 ID:GVB+h7A40
子供の頃は閏日に生まれた人は4年に1度しか年を取らないとか馬鹿な話が流行ってたな
94 :
名無しさん@八周年:2008/03/01(土) 13:40:20 ID:adEI8R070
>>90 ゆとり乙。
4で割れる年はうるう年
でも100で割れたら平年
だが、400でも割れたらうるう年
95 :
名無しさん@八周年:2008/03/01(土) 13:42:08 ID:XCNc82AhO
豊川も県外の人間が増えてきた
97 :
名無しさん@八周年:2008/03/01(土) 13:45:13 ID:vgXqGNwwO
このスレのおかげで腕時計の日付が1日ズレてるのに気付いた
98 :
名無しさん@八周年:2008/03/01(土) 13:49:58 ID:ArLcS8Ho0
日付の期間計算とか普通システムの標準関数使うから考えたことねーや
99 :
名無しさん@八周年:2008/03/01(土) 13:55:34 ID:HG2YRUzEO
なんでこんな初歩的な障害が・・。
役所恐るべし
100 :
名無しさん@八周年:2008/03/01(土) 13:55:38 ID:o9fT6YsP0
>>13 日本のIT投資って無駄が多いって
アメリカなんかだと、汎用システムを少しカスタマイズはするが、逆にそれを効率よく使える様に使う組織の方を変革するのに、日本企業はオーダーメードで作らせて、今までの組織や運用方法を温存するんで、全然IT投資が業務の効率化につながらないってw
101 :
名無しさん@八周年:2008/03/01(土) 13:58:14 ID:moEBADbp0
>>86 地に落ちたな。
他より格上というイメージだったんだがw
だから日付型や日付処理が実装されていない処理系は使いたくないんだよ。
103 :
名無しさん@八周年:2008/03/01(土) 14:02:59 ID:NafWIuav0
>>94 どんな数字でも
4でも100でも400ででも割れる
ゆとり乙
104 :
名無しさん@八周年:2008/03/01(土) 14:05:05 ID:ptTgyAn70
4の倍数の年だけアホになって、さらに100の倍数のときは賢く、
400の倍数のときはもっとアホになりま〜す
105 :
名無しさん@八周年:2008/03/01(土) 14:05:22 ID:ArLcS8Ho0
>>100 けどIT業界もシステム優位の思想持ってる奴多いと思うけどな
使い辛いシステム押し付けて「業務がシステムに合わせろ」って言う奴多いよ
業務の本質分析して業務の見直しと効率化をトータルで考えるべきなんだろうけど
単純に業務をシステムに移しなおして深く考えてないSEが多い気がする
プログラムミスっていうよりも、やりたくない病に冒された
公務員の脳みそが腐ってるだけの話だろ
>>105 現場じゃなくて、コンサルっていうか上流の設計がバカだからねぇ。
その手の業務フロー見直しは、「その企業に三年は働いて、仕事の流れ方を読む」必要があると思うんだけど、
「何が何でもシステムに従わせる」っていう風潮がある。
だから、現場は余計に煩雑になって不幸になるし、業務も滞ってしまうっていうのが多い。
なんというか、「見極め」のところが全然だめなんだよな。
109 :
名無しさん@八周年:2008/03/01(土) 14:14:05 ID:/88J1U1A0
システムの瑕疵責任は1年ぐらいだっけ?
>>100 というか、日本とそれ以外の場所では、「業務の手順作成と人の育て方」に根本的な違いがある。
日本の場合
・従業員が基本的に「滅多なことじゃ辞めない」事が前提
・従業員同士の暗黙の意思疎通や「阿吽」で動く組織を作る。
・助走期間は長いが、それを過ぎればマニュアル不要で、
業務上の意思疎通や流れがドンドン効率化する
それ以外の場合
・従業員が基本的に「いつやめるかどうか分からん」事が前提
・従業員同士の暗黙の意思疎通や阿吽に頼らない組織を作る
・意思疎通にマニュアルや書類は必要になるが、助走期間は短く、
システムとして交換しやすい
良し悪しの問題じゃなくて、恐らく日本の伝統的なやり方って、
IT化に向かない気がするんだよな。
111 :
名無しさん@八周年:2008/03/01(土) 14:20:47 ID:lqi9GBLI0
頭ゆるいシステム設計なのね
>>81 > 4で割れる年はうるう年
> でも100で割れたら平年
> だが、400でも割れたらうるう年
> 2000年は3つ目まで考える必要がありました
今回の問題で何がバカだって、
その一つ目ですら考慮されてなかったって事だなw
やたら休日を増やすのが好きなのだから、
法律で「2月29日は休日。コンピュータも
動かしたらアカン。」ということにすれば
いいんじゃないかな?
114 :
名無しさん@八周年:2008/03/01(土) 14:31:36 ID:/88J1U1A0
>>112 システム化するときは、400で割り切れたら無条件でうるう年
400で割り切れず、100で割り切れる場合はふつうの年
100で割り切れず、4で割り切れる場合はうるう年・・・・・って感じで3番目の条件。
>>114 いや、コードにする場合はそういう風に組む場合もあるけれどさ。
常識で考えて「4で割り切れたらうるう年」の最初の条件すらないのはどうよw
116 :
名無しさん@八周年:2008/03/01(土) 14:44:09 ID:CY7Hk1jS0
117 :
名無しさん@八周年:2008/03/01(土) 14:44:21 ID:qM+WyRxC0
「どうせ次のうるう年までにはこの会社辞めてるし、知ったこっちゃねえ」として実装したんだろ
実装したところでたいした手間ではないが
>>116 倫理演算?
だから、コード実装の問題じゃなくて、仕様の問題としてどうなのよ、って事なんだけど。
ヘタすりゃ「うるう年」っていう概念そのものがコードされてないんじゃないのか?って事。
119 :
名無しさん@八周年:2008/03/01(土) 14:51:02 ID:TeT9HO3S0
というか日付に依存しないシステムを構築するのが本当のプロってものさ。
120 :
名無しさん@八周年:2008/03/01(土) 14:51:50 ID:MAOZCyAP0
これって入力日付をそのまま前年と来年に
当てはめたらエラー出たって事だよね。
その程度で処理が止まるほどのエラーって…。
なんのためのエラートラップなんだか。
121 :
名無しさん@八周年:2008/03/01(土) 14:54:34 ID:h3OEEFaIO
>>48 ダメなシステム屋が言いそうなセリフだな。
システムが使いにくいから直してくれと頼んでも全く直そうとしない。
122 :
名無しさん@八周年:2008/03/01(土) 14:56:34 ID:tJbUgAJW0
これ派遣PGのトロイだろうなw
こういうのがいたるところに仕掛けられてるw
手打ちで1万年分のカレンダーを入れておくのが本当のプロ
システム、システムとは言っても、
大抵操作性の要望なんだよな・・・。
しかも言ってる本人限定の仕様w
125 :
名無しさん@八周年:2008/03/01(土) 14:58:31 ID:A/ZQK0RrO
タイムリーって、岐阜県の山奥にある、デイリーヤマザキ系のコンビニチェーンかよ(笑)
126 :
名無しさん@八周年:2008/03/01(土) 15:00:53 ID:ikp4WN5hO
>>114 べつにどっちの書きでもいける
前者はネスト深いから汚いけどね
127 :
名無しさん@八周年:2008/03/01(土) 15:01:26 ID:2acvFYIm0
ボカーン
128 :
名無しさん@八周年:2008/03/01(土) 15:02:34 ID:NafWIuav0
>1を読むと
毎朝毎朝システム立上げ時に日付を手入力してるように
とれるんだけど、そんなもんなの? システム屋さん。
2000年問題の時もうるう年云々で騒がれたような
>>114 3番目だけあれば、1番目・2番目は無くても問題なく動くだろ。
131 :
名無しさん@八周年:2008/03/01(土) 15:05:27 ID:lPR2s+wS0
日付と曜日の計算って、作ってみると、案外面倒くさいだろw
一ヶ月毎にスクロールする画面とか
一週間毎にスクロールして、年を越える画面とか
その時にフリーズするプログラムがあるw
132 :
名無しさん@八周年:2008/03/01(土) 15:06:20 ID:ei5mQePa0
おまえらすげえな
家の電話もうるう年対応してなかったよ
昨日留守電入ってて気が付いた
134 :
名無しさん@八周年:2008/03/01(土) 15:07:49 ID:MSKIilx0O
閏年なんて、条件分岐の例題になるほど基本なのに(・ω・)
>>130 問題あるよ
2000年がうるう年になるのは1番目の条件
>>128 そうじゃなくて、
・その処理(仕事)をやるには、必ず「日付を入れる」必要がある
・その日の一番最初にその処理(役所の手続き?)をやる時に、
タイムリーのバグ(というかうるう年概念抜け)で落ちた
ってことじゃないかな、記事を見る限り。
流石にシステム立ち上げ時に日付手入力は・・・ないと思うなぁ。
アフォは、ハードコーディングしとけ。
138 :
名無しさん@八周年:2008/03/01(土) 15:13:07 ID:TeT9HO3S0
unixのタイム関数もそろそろオーバーフローするんだっけ?
久しぶりの豊川スレ発見と思ったら…\(^o^)/
>>114 cだとifのネストなんかしないで
y % 4 == 0 && ( y % 100 != 0 || y % 400 == 0 )
じゃね?大半の年で1番目の条件不成立だから残りの条件計算しなくて良いし。
おそらく、このシステムは、
先日付・後日付が出来る機能が
あるんじゃないかな?
公的機関にあるまじき機能だが。
142 :
名無しさん@八周年:2008/03/01(土) 15:15:53 ID:TeT9HO3S0
143 :
名無しさん@八周年:2008/03/01(土) 15:18:49 ID:TM0fx2Q70
地球の自転(1日)と時計の誤差修正がうるう秒
地球の公転(1年)と時計の誤差修正がうるう年
日付は太陽と地球を基準に作られている。単なるカウンタではないにょ。
>>138 あと25年は持つ
>>139 まあそこらへんは、逆に「業務」でコードを書くときには
そういう風に書かないっていうか、書かないように基本的には指導される。
if(year % 400 == 0) urue = true;
else if(year % 100 == 1) urue = false;
else if(year % 4 == 0) urue = true;
else urue = false;
みたいに書かされる。
今時1クロック(1サイクル)削る事に意味はないから、
「常識的に分かり易いコードを書く」事を要求されるんだよね。
この場合だとまだ有名な問題だからいいけど、
ソースデバッガで何処を通ってるかを目視検証追跡する事が茶飯事だから
あまり「賢い(トリッキーな)」条件分岐は書くな、っていうのが基本的マナー。
うるう年ばかりで、うるう秒の話題が出ないスレがあると聞いて飛んできますた
>>128 「うるう年を意識しなかった」とあって、うるう年判定の間違いとは書いてないから
チェック処理内で、現在日付の一年前と一年後を取得するのに単に年だけ変えてて
2007年2月29日と、2009年2月29日としてしまい、内部処理のどっかで日付形式エラーになったのでは
>>144 早速バグ混入ww
偉そうなこと言ってるくせに俺バカwwww
× else if(year % 100 == 1) urue = false;
○ else if(year % 100 != 0) urue = false;
148 :
名無しさん@八周年:2008/03/01(土) 15:22:37 ID:tGZN4GhS0
売る性や面
2100年なんて死んでるだろうから、4で割り切れたらうるう年でいいよもう
>>147 ちげー!!!
if(year % 400 == 0) urue = true;
else if(year % 100 == 0) urue = false;
else if(year % 4 == 0) urue = true;
else urue = false;
だっつーの俺wwwww
151 :
名無しさん@八周年:2008/03/01(土) 15:25:29 ID:TM0fx2Q70
>>146 仕様書に記述がなくても、プログラマならふつー気付くけどなw
うるう年の存在自体知らなかったんじゃね? まさかとは思うけどさw
152 :
名無しさん@八周年:2008/03/01(土) 15:25:36 ID:lvKFeRKG0
>豊橋市のソフト会社
ゆとり世代のエンジニアが多いんだろうけど、限度があるだろ。
日付管理つったら真っ先にうるう年の事に注意する筈なのに・・・
このコード書いたのかなりの低脳だぞ。
156 :
名無しさん@八周年:2008/03/01(土) 15:29:44 ID:J/ViE+vB0
>148
ワロタ
そもそもなんで今日が土曜日なんだろう?
日曜日でも月曜日でいいはずだよな
一番最初に今日が日曜日って決めたのって誰なん?
もしかして自然発生?
>>150 素人なもんで、例外処理が先にくるのは気になる
159 :
名無しさん@八周年:2008/03/01(土) 15:31:20 ID:gRo/2dI70
2004年もうるう年だったはずなのに、今年は何でこんな事なってんだ?
160 :
名無しさん@八周年:2008/03/01(土) 15:32:18 ID:9US+cLai0
チェックする手順を後付で入れたっぽいなぁ
たぶん日付管理のコードに後から違う人が入れたんだと思う。
まぁどっちにしろ最終的にうるう年をチェックしないで出したのは馬鹿すぎ。
>>149 普通だと、1900年と2100年のことなんて無視してうるう年は4年に1度で十分。
2100年になりそうになったら改めて考え直せば桶。
でもうるう年を完全に無視したとしか思えないんだよなあ、
>>1の事例はw
ちなみに、医療機器や住民登録見たく1900年以前の高齢者の誕生日とかが絡むと
(Y2K問題が騒がれ始めたころだと十分ありえた)そりゃ大変。
163 :
名無しさん@八周年:2008/03/01(土) 15:43:55 ID:sVDSLQdk0
2000年問題とか大騒ぎになったのになぁ。
164 :
名無しさん@八周年:2008/03/01(土) 15:44:42 ID:TeT9HO3S0
>>163 まだ生まれてなかったんだろう(´・ω・`)
165 :
名無しさん@八周年:2008/03/01(土) 15:45:18 ID:gh48Y88W0
閏年を知らないような教育水準の人でも
プログラマになって役所のシステムが組める、っていう夢のあるお話
166 :
名無しさん@八周年:2008/03/01(土) 15:46:06 ID:MGOOw0kM0
2月29日生まれのT君は今年ようやく4歳
何月何日に誕生日祝ってんだろうな・・・
>>165 そのプログラマはうるう年を経験した事が無い年齢なんだよ。
>>166 普通に考えれば3月1日
2月29日生まれの人は平年は3月1日に歳をとる
170 :
名無しさん@八周年:2008/03/01(土) 15:50:39 ID:T+jQnEse0
>原因は、4年に1度の「うるう年」を意識しなかったシステムのプログラムミスだった。
エロゲーとコミックで育った世代の仕事かw
なら、あり得るな。
うるう年てif文のときに出てくる基本のプログラムじゃないの?
いまも太陰太陽暦だったらSEは大変だったろうな
気象庁が大活躍
トゥルーが true だから
うるぅ が urue かw
車輪の再発明はなくならないんだよなあ
176 :
名無しさん@八周年:2008/03/01(土) 16:10:18 ID:ixzQKYA00
昨日の納品書に「3月1日」と記入していた事に、さっき気が付いた。
くそCASIOの安物腕時計のせいでつまらん仕事がふえそうだ・・・
177 :
名無しさん@八周年:2008/03/01(土) 16:10:45 ID:/u1eAoMT0
ちょ、何処のシステム屋だよwww
うるう秒をついたハッキングとかできないかな。
179 :
名無しさん@八周年:2008/03/01(土) 16:14:15 ID:wUtqGxFYO
実際、閏年の判定プログラムを書けない新人は多いですよ。
アルゴリズムの話しても通じないし…
最近特にレベルが下がってる。
180 :
名無しさん@八周年:2008/03/01(土) 16:14:17 ID:/u1eAoMT0
>>162 うるう年は4年毎に1日でありながら、
4で割り切れる100、200、300は平年だが400はうるう年。だから400の倍数の年だけ、うるう年になる。
181 :
名無しさん@八周年:2008/03/01(土) 16:22:29 ID:AdxHRvTR0
・閏年の存在を忘れる。
・春分の日、秋分の日が移動祝日ということを知らない。
ってのが日付がらみのバカシステムの定番ですな。
182 :
名無しさん@八周年:2008/03/01(土) 16:24:12 ID:3SbZCwZi0
なさけなす
どういう判定にしてんだ?
183 :
名無しさん@八周年:2008/03/01(土) 16:25:18 ID:xeZZiEAj0
こういうのって OSの方に日付関数は 実装されてないのかなww
184 :
名無しさん@八周年:2008/03/01(土) 16:29:59 ID:AsHuWaFCO
田舎の役人は低脳だな(笑)
ろくにパソコンも扱えないんじゃないか(笑)
うるう年計算なんてプログラミングの初歩の初歩だと
思うんだがそんなのをまともに組めないSEって
生きてる価値無いだろ
186 :
名無しさん@八周年:2008/03/01(土) 16:37:49 ID:L0WNCAIHO
C#専門になってからこの手の悲しいリスクから開放された。
ありがとうマイクロソフツ。
187 :
名無しさん@八周年:2008/03/01(土) 16:39:20 ID:DAbX+He20
ピットうるう
188 :
名無しさん@八周年:2008/03/01(土) 16:41:51 ID:OkdwXWfS0
>>179 100年に一度、400年に一度なんて話を新人(≒一般人)が普通に知ってるわけ無いだろ。
知っているのは、2000年を大人として過ごした人だけだ。
189 :
名無しさん@八周年:2008/03/01(土) 16:43:07 ID:TeT9HO3S0
そのうち、うるうる詐欺とか誰か考えそうだな。
190 :
名無しさん@八周年:2008/03/01(土) 16:45:48 ID:7gZAF4mY0
>>149 数年前にセイコーの腕時計がそんなノリで
100年OKみたいな広告出してて
それは技術的進歩じゃなくて、
たしか2000年を乗り越えた暦の都合に過ぎないのに
当時呆れた
191 :
名無しさん@八周年:2008/03/01(土) 16:46:17 ID:pnCiTZeYO
わwおもいっきり地元ww
しかもリアルタイムで帰るとこww
192 :
名無しさん@八周年:2008/03/01(土) 16:50:46 ID:iXNUbxDX0
2月29日が誕生日なんだけど、小学生の時に「そんな日ねえじゃん」って嘘つき呼ばわりされた。
うるう年判定の話が出てるけどカレンダー1万年分ぐらい作って記憶させてそれをコンピュータがみればいいんじゃね?
素人考えかもしれんが・・・
ググったらこんなのが先頭にあった(ちょっと改変)
SFXDate date(year, 3, 1);
date.SubDay(1);
if (date.GetDay() == 29) uruu = true;
196 :
名無しさん@八周年:2008/03/01(土) 18:14:28 ID:dbYYJ6dJ0
1900年 平年
2000年 うるう年
2100年 平年
2200年 平年
197 :
名無しさん@八周年:2008/03/01(土) 18:16:14 ID:zTORcH/p0
ショボwwwww
うちの1000円の時計でさえ認識してるというのにwwww
>>181 > ・春分の日、秋分の日が移動祝日ということを知らない。
逆パターンで、「体育の日」や「成人の日」がいつまでも日付固定祝日だと
思ってるパターンもありがちだと思うw
199 :
名無しさん@八周年:2008/03/01(土) 18:35:07 ID:7gZAF4mY0
今年と来年の5月6日、来年の9月22日もよろしく。
201 :
名無しさん@八周年:2008/03/01(土) 18:35:49 ID:RrA78Wwl0
UNIXコマンドで1752年9月のカレンダーを表示するとすごいことになっているよなw
202 :
名無しさん@八周年:2008/03/01(土) 18:44:57 ID:tqnETeEp0
( ゚д゚)ポカーン
わざと問題を起こすプログラムを組んで、
メンテナンスで稼ぐという新しいビジネスモデル?
>>201 ユリウス暦とグレゴリオ暦の切り替えね
あれを初めて見た時は驚いた
>>201 何それ、すごく興味あるんですけど
どやったら見られるの?
% cal 9 1752
September 1752
S M Tu W Th F S
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
207 :
名無しさん@八周年:2008/03/01(土) 20:09:54 ID:XSjzyx990
>>188 一般レベルの話だと思う。
4年に一度のうるう年って何?という話になればそこまで話すのが当たり前だから。
おまえさんの周りは常識が無いようだけどな。
ゆとり世代か?
208 :
名無しさん@八周年:2008/03/01(土) 20:13:14 ID:XCNc82AhO
>>207 えー、あなたの両親も祖父母もうるう年についてそこまで知ってるの
すごいね
209 :
名無しさん@八周年:2008/03/01(土) 20:19:23 ID:4jZzVmYZO
>>208 馬鹿か?
プログラマで入ってきた奴のことを言ってるんであって
ジジババが分かってるなんて言ってないだろ。
ボケカス
210 :
名無しさん@八周年:2008/03/01(土) 20:26:38 ID:XSjzyx990
>>208 自分が知らなくて馬鹿なんだと自覚したからって、卑屈になる必要はないんだよ?
まあ、うちのじじばばは小さい頃に亡くなってるので分からないが、両親も叔父も叔母も小学生の甥も姪も知ってるよ。
つまり、小学生の教養レベルの話なんだけど理解できるかな?
211 :
名無しさん@八周年:2008/03/01(土) 20:28:19 ID:XCNc82AhO
>>209 >>188 「うるう年判定はプログラマにとっては一般常識だけど
業界に入ってくる新人なんて一般人と変わらないから
そんな知識はもってないよ」
>>207 「一般人だってその程度の知識はある。
したがって、新人も最初からその程度の知識はある」
という話なんじゃないの?
>>179 底辺産業の新入社員なんだからさぁ・・・
書けないのなんか当たり前だろw 昔と違うんだよ
213 :
名無しさん@八周年:2008/03/01(土) 20:33:42 ID:XCNc82AhO
>>210 >小学生の教養レベルの話
「ゆとり世代」のタンカを切った以上引っ込みがつかなくなっちゃったか
氷河期世代ですが、うるう年判定が一般国民に広く認知されてるなんて思ったこともないっす
どんだけ理系脳(悪い方の)なんですか
子どもと接したこともないくせにホラ吹いちゃ駄目ですよ
214 :
名無しさん@八周年:2008/03/01(土) 20:35:18 ID:ADYqLoEs0
215 :
名無しさん@八周年:2008/03/01(土) 20:36:07 ID:U+n0Huiu0
A) 4で割り切れる年はうるう年
B) でも100で割れるときはうるう年じゃない
C) でも400で割れるときはうるう年
Aしか知らない人 = 2000年のうるう年を正しく処理できる。
Cまで知ってる人 = 2000年のうるう年を正しく処理できる。
中途半端にBまで知ってる人
↓
郵便貯金ATMのうち、約1,200台が停止。同日深夜、郵政省と富士通より、富士通製のLSIに上記の不具合が
あったために、1996年から1999年にかけて製造された同社および沖電気工業製の一部ATMが停止したことが
発表される。
札幌市交通局の路線バスから地下鉄へ乗り換えようとすると、バスで発行される「乗り継ぎ券」の日付が
2月28日になってしまい、地下鉄の自動改札機を通過できなくなってしまった。
気象庁のアメダスが誤作動、長崎県平戸市では降雨がないにもかかわらず、1時間に973mmの
降雨量を記録する。
ゆとり始まった頃の俺は、100年と400年云々はプログラムの教本読んで初めて知った
217 :
名無しさん@八周年:2008/03/01(土) 20:41:02 ID:ADYqLoEs0
>>201 >>204-206 これは、イギリス(および、その植民地だったアメリカ)でのユリウス暦→グレゴリオ暦の
切り替えのこと?
カトリック圏では16世紀後半にやってるのに。
>>217 プロテスタントの国は嫌がって16世紀には変更しなかったらしい。
結局ずれを無視できなくなって後で変更したわけですがw
気象庁のアメダスが誤作動
明星電気
220 :
名無しさん@八周年:2008/03/01(土) 21:00:33 ID:XSjzyx990
>>213 おまえはどんだけAHOなんだよ!
本当に小学生が知らないって思ってるの?
ちょっと街に出て聞いてみろよ・・・
お前の周りは本当にAHOばかりなのか?
お前は100・400年ルールの処理ならともかく4年ごとのルールすら処理しないタイプなんだろうな。
今回のソース書いた奴と同種のAHOだねw
そもそも最近は教本というか、入門書でプログラムの勉強する人はいないからなぁ。
いきなり実戦叩き上げの人しかいない。
だから柔軟性と適応能力は高いが、昔の本に書いてあったような
有名なルールやパターンを知らない。
でもそうしないと時代についていけない仕事なんだよな。
だからベテランで基礎からしっかり勉強してきた人は
彼ら新人に基礎をしっかり叩き込んでやってください。
それが彼らのためであり、あなた達にできることです。
悪いのは下請けのプログラマだとか言ってるやついるが、どうしようもなくダメなのは元受会社の品質管理能力。
閏年判定なんてのは日付関係のテストではもっとも代表的なテストで、このテストをやってないようじゃ、他にも不具合がやまほど入っているに決まっている。
閏年計算を知らないやつがバカだのアホだのいってるが、IT業界でもっとも使えないのはテストをしない・できない奴。
223 :
名無しさん@八周年:2008/03/01(土) 21:56:10 ID:F4oJBi3AO
豊川市と言えば…
御油町のヤクザが全裸で、チョコレートを店に貰いに行ったな〜
>>221 そうなのか。
俺のようなゆとりでもこの業界に入ることが決まって自分で勉強しだしたんだけど、
大抵のゆとりは予習もせんで教えられるのを待つ奴ばっかなの?
225 :
名無しさん@八周年:2008/03/01(土) 22:00:47 ID:Jjc1aa6b0
2037年問題・・・
2036年も大変そうだなw
>>224 日々無理な要求に悪戦苦闘し続けているので、知識を持った人が
教えてあげないと地味で大切なものは学習できない。というかそんな余裕がない。
悲しいがそういう世界。
228 :
名無しさん@八周年:2008/03/01(土) 22:07:12 ID:N4nEZiN40
単純な話、頭の悪い人がコードを書くようになってきただけだよな。
230 :
名無しさん@八周年:2008/03/01(土) 22:09:19 ID:U+n0Huiu0
ところで今動いているシステムで2100年を正しく処理できないやつってどれぐらいあるのかな?
まあ、2100年の前に32bit整数絡みの問題がいろいろありそうだけど。
今ふと思い出したんだが、うちの会社の基幹システム(ハードウェアはNECのメインフレームw)
も一部業務で2/29の日付で入力出来ないモノがあるな・・・。
長年勤めてる人は、「あ、それそうなるから28日付で打って」とかって対応してた。
これこそあるべき姿だな。
日本はなにをなしとげたかよりもかけた労力が評価される労働環境なんだよな。
だからいまだにうるう年判定なんてものまで既存のコードを流用しない
233 :
名無しさん@八周年:2008/03/01(土) 22:11:26 ID:Ls51j1rA0
うるう年もまともに処理できない連中が
サマータイムが処理できると思えない
プログラマがやたら怒っていたのは、処理する頭脳がない
というのをばらされたくなかったからか
234 :
名無しさん@八周年:2008/03/01(土) 22:15:48 ID:U+n0Huiu0
サマータイムの方がうるう年よりはるかにやっかいでしょ。
終了時の時間の巻戻りでこけるシステムが多そう。
235 :
名無しさん@八周年:2008/03/01(土) 22:18:26 ID:bPbV26td0
俺うるう日生まれだからまだ40歳なんだよねとか言うウチの社長が早く死にますように
>>232 それはあるな。
既存の広く信頼性が評価されているシステムを使って、
より少ないコードで堅牢なアプリを作ってもなぜか手抜きと言われる。
いや、気持ちは分かるけどさw
237 :
名無しさん@八周年:2008/03/01(土) 22:22:35 ID:7fpf6A8s0
238 :
名無しさん@八周年:2008/03/01(土) 22:23:02 ID:f2TAYVSaO
月の高さと日の長さを認識するようにしとけばいいじゃん
239 :
名無しさん@八周年:2008/03/01(土) 22:25:49 ID:aSXKrNje0
>>1 おまいら、プログラミングを日本人が行ったと決めつけてるだろ。
オフショア等で中国人がプログラムした可能性もあるんだぜ。
あいつらは、明確に仕様に記載されていないことは、絶対やらない。
仕様を作成した日本人が、日本人プログラマ相手のつもりで
閏年処理を明確に記載していなかった可能性も・・・・・考え過ぎか?
240 :
名無しさん@八周年:2008/03/01(土) 22:33:03 ID:fUKRmxtE0
ちょうど今年うちの出張先でもテスト中に起きてたなうるう年バグ。
まあ、まったく関係ない会社の話だからどうでもいいけど。
241 :
名無しさん@八周年:2008/03/01(土) 22:37:43 ID:Jjc1aa6b0
閏年の人って誕生日が4年に1回だから、年取らなくていいよね。
242 :
名無しさん@八周年:2008/03/01(土) 22:38:14 ID:F6NfX8YcO
処理自体じゃなくて入力だけできないってのが多かったんだが、
バグバグなフォームのひな型でもあったんか?
>>242 入力フォームで、エラーチェックルーチンをかけまくってる可能性が高い。
それでそれがバグってると。
244 :
名無しさん@八周年:2008/03/01(土) 22:43:00 ID:kZng0CtZ0
うるう年なので2月30日の予定を立てていた俺が来ましたよ。
うるう年の話は昔やったYOU-NOってエロゲで感心した覚えが・・・
PC-9821時代が懐かしいなぁ
今時、日付操作関数なりクラスが無い言語使ってることが問題だな
>>241 年を取るのは誕生日の前日(民法143条)
>>242 自前の日付ヴァリデーターを使ってたんじゃないかな。
今時な言語ならシステム組み込みのクラスなり構造体に投げればいいから楽チンだね。
うるう秒なんてカーネルで実装していうるjのにね
>>221 いま同じ職場で同じ仕事してる別会社の派遣PGの人(業界三年目)と話をしてたときに、
その人はK&Rを知らない、っていうのでカルチャーショックを受けた。
いや、Webだなんだをやってるとかならともかく、
組み込み業務でC++をやってるような仕事に来ていてそれってどうなのよと結構言葉を失った。
>>250 ちょ、業界2年目の俺もK&Rが何なのか知らない・・・。
俺の場合、MSDNLibraryのみで育ったc#純粋培養だからだな。
おかげで.NET Framework3.5フル対応だけど。
252 :
名無しさん@八周年:2008/03/02(日) 10:00:27 ID:Zm10PaXe0
SE見聞録
1.誰でも知っている大手ベンダにいるSEは中小の聞いたこともないベンダのSEより知識や経験があると思うのは間違いである。
2.社員が10名もいないような日本の零細会社にも飛びぬけて優秀なSEがいる。ただ彼ら・彼女らはほぼ100%外国人である。
3.優秀なSEとそうではないSEとの生産性は時に数倍くらいの差がある。
4.発注する側にたつ場合、名前にこだわらないで実力のある企業を2,3知っているといざという時大変助かる。
253 :
名無しさん@八周年:2008/03/02(日) 10:12:56 ID:xi+NHqGh0
日付とか曜日とか自前で計算とかどんだけコストの無駄遣い?
255 :
名無しさん@八周年:2008/03/02(日) 11:19:17 ID:4bxUvuEB0
>>251 C 言語を作った人が書いた本(プログラム言語 C ) のこと。
Brian W. Kernighan と Dennis M. Ritchie を略して、 K&R .
その本に
(year % 4 == 0 && year % 100 !=0) || year % 400 == 0
が出ている。
>>255 それは俺の場合、
DateTime.IsLeapYear(year)
で済んでしまう。
つ[プログラム書法][ソフトウェア作法]
プログラマーならこの程度の混乱は巻き起こしてみたいよな。
てかこの初歩的プログラムのおかげでうるう年を英語でleap yearと言うっていう
ムダ知識ができるのにな
あとcalでは当然表示できないが明治5年12月のカレンダーもおもしろい。(太陰暦最後の月)
昭和64年並にレア
261 :
名無しさん@八周年:2008/03/02(日) 12:26:13 ID:z4uEIw/20
世界のなべあつに判断してもらったらいいのに(´・ω・`)
もうワザとやってるんじゃないか?
病んでるPGが
>>144 >あと25年は持つ
2000年問題の二の舞になるぞ
264 :
名無しさん@八周年:2008/03/02(日) 12:45:43 ID:Qkpy+ieH0
>>35 2ちゃんねるで3月32日問題が発生したことがあった。
265 :
名無しさん@八周年:2008/03/02(日) 13:11:45 ID:FGuS2fzo0
>>191 (゚∀゚)人(゚∀゚)ナカーマ
昨日の中日新聞に書いてあったな。3セクのあすこだっけか?
1月にも何かやらんかったか?
処理系にもよるが、最初から関数として持ってればコンパイラとかのせいにできるが・・・
オリジナルで作ったルーチンだったら、まず単体テストとかしないのか?100年ぐらい?
266 :
名無しさん@八周年:2008/03/02(日) 13:12:38 ID:P+WCQIFd0
>>260 明治5年12月1日→12月2日→明治6年1月1日。
役所は、12月分の月給なし。旧暦の閏月がなくなって、その分の月給も
節約。月給制を採用したばかりの政府にとってはウマーだった。
庶民は、当時、最大の夜間照明だったお月さまの満ち欠けが、日付と
連動しなくなって、困った。15日に満月が出ないなんて、暦とはいえない。
素人丸出しで恥ずかしいんだが
UNIXのタイム値って32ビットで
1970年からの秒数なんでしょ?
2100年くらいまで持ちそうなんだけど
なんで2037年?符号付きなん?なんでなんで?
>>267 符号付き32bit整数らしい。なんでかは知らん。
269 :
名無しさん@八周年:2008/03/02(日) 14:22:56 ID:IcBdELT20
270 :
名無しさん@八周年:2008/03/02(日) 16:10:25 ID:z4uEIw/20
オリンピックの年は閏年。これ豆知識な
じつは閏年は対応しなくても問題なかった
400で割れるから
2000年対応は西暦下2桁がメイン
問題は2100年だけだった
閏年に対応してないとかは常識で有り得ないよな
オレはテストデータの日付は20000229とか19000101、29991231とかにしかしないなあ
year % 4 == 0 && year != 2100 でいいってことか?
273 :
名無しさん@八周年:2008/03/02(日) 16:37:15 ID:t6VKIQpc0
とりあえず year%400 == 0 の条件式が無かったとしても
次にこの式が真になる年は2400年だから
俺らが生きてる間は問題ナッシングwwww
孫の孫の孫の…孫は迷惑するかもしれんがwwww
UIコントロールの層でガッチガチに制約かけまくれば楽だ。
キーボードからの直接日付入力を禁止すればさらに効果絶大。
275 :
名無しさん@八周年:2008/03/02(日) 16:49:15 ID:z4uEIw/20
だから年号にしておけといったのに(´・ω・`)
276 :
名無しさん@八周年:2008/03/02(日) 17:14:51 ID:I0StDLuKO
ばか
つーか、日付処理を自前でやるかねw
頭おかしいんじゃね
279 :
名無しさん@八周年:2008/03/02(日) 18:08:52 ID:TlnO4umA0
ぐわ、ここにも閏年バグが!
正直、信じられん。閏年とかは納品前に絶対チェックするはずなのに。
280 :
ナオツィ ◆RlkJ/NAOTU :2008/03/02(日) 18:12:45 ID:8LylsCjeO
どうせ五年程度でリプレイスするんだから、うるう年を共通モジュールに書けばいいのに。
281 :
名無しさん@八周年:2008/03/02(日) 18:16:32 ID:QMdZeIA80
282 :
名無しさん@八周年:2008/03/02(日) 18:17:38 ID:klJXyLI50
>1年前から1年後までの
こんなとき、普通どんな回避方法をとるの?
365日前から、365日後まで、と言う処理でやるの?
「もしうるうどしだったら」を毎回処理するの?
XXXX年YYY日でいいのに、なまじ太陽暦なんか使ってるから混乱が起きる。
XXXX年YYY日方式でも閏年は必要だが月ごとに日数の違う「月」なんて不要になるし
閏年の日数の調整も年末でいいから楽。
一月が三旬のペースで世の中が進んでいるなら月にも意味があるが、七日単位の週が基本になった以上は
もう月なんてものは意味がない。季節感を表すくらいなもの。
だったら素直に旧暦で季節感を味わえばいい。
>>282 日付変換用のサブプログラムを作っておいて、処理を共通化
「今日の日付」と「−1年」を値でサブプログラムに引き渡して、開始日にする
「今日の日付」と「+1年」を値でサブプログラムに引き渡して、終了日にする
開始日≦データ日付≦終了日ならOK、該当しなければNG
今日の日付は1つしかないから、処理の最初に1回だけやればいい
285 :
名無しさん@八周年:2008/03/02(日) 18:28:25 ID:W9pZbRmn0
でも、 year が 1900 を引いた後の値だったらまずいな。 2000 が 100 だから、
year % 400 == 0
は意味がない。
286 :
名無しさん@八周年:2008/03/02(日) 18:34:42 ID:BDM/TOIz0
>>285 その2000年問題、今では懐かしいな。
287 :
名無しさん@八周年:2008/03/02(日) 18:36:10 ID:t6VKIQpc0
( year - year % 400 ) % 400 == 0
で解決
マイクロソフトの作ったわけわからん使い捨てプログラム言語の日付計算ライブラリなんて使わないんじゃないの?
普通。
289 :
名無しさん@八周年:2008/03/02(日) 18:38:06 ID:TlnO4umA0
/* 閏年の判定方法 */
int year, flag; // 0:平年 1:閏年
year = 年度取得関数();
flag = ((year % 4 == 0 + (year % 100 == 0) + (year % 400 == 0)) % 2 == 1); //←これで完璧
290 :
名無しさん@八周年:2008/03/02(日) 18:40:21 ID:6x5s00UM0
どうせ、下請けの下請けに中国人使ったんだろ。
動作確認も中国人で役人はハンコオスだけ。
コスト意識ってのが皆無ってのは怖いね、安く作ればコスト削減って勘違いしてるから。
中国人の方が優秀だろ。
それはそれとして、休日の判定なんかが必要になる場合は100年後くらいまでの各年の情報をテーブルにもってそうなもんだけどな。
役所なら元号の変換も必要になるだろうからそのための情報も。
その方が融通がきくから。
組み込みでもないのにコードで閏年を判定するなんてちょっとよくわからない。
>>271 中途半端な知識があると混乱するかもと思ったが
100で割り切れても400で割り切れる場合は閏年になるまでは知らないとか
でもたいていはカレンダーとかみて気付きそうだな
293 :
名無しさん@八周年:2008/03/02(日) 18:49:18 ID:t6VKIQpc0
>>291 それはメモリの無駄遣いかつ100年後には使い物にならない糞設計なんでは…
294 :
名無しさん@八周年:2008/03/02(日) 18:51:53 ID:trfoKG0pO
この程度で済むのだったら、シャカリキになってPG改修するよりは、今回みたく運用で回避した方が安上がりかもしれない。
295 :
名無しさん@八周年:2008/03/02(日) 18:53:37 ID:kNBo0JZL0
2004年の2月29日は確か日曜日。
このシステム、いつからサービスしてるかわからないけど、
2004年は役所が閉まってたから発覚しなかったのではないかな。
>>284 >>289 なるほど
俺は業務上必要に迫られてVBA(MS-ACCESS)を覚えた、
素人同然の営業部内の社内SE担当なんだけれど、
月単位でしか処理を行わないので、うるう年の処理を考慮したこと無かったので、
どうするんだろうと疑問に思ったんです。
締め日処理で月の最終日を作ることはあるけれど、「指定月の翌月1日の前日」としているし、
うるう年の処理、知らなかった1人です。
>>293 逆に考えるんだ。100年に一回テーブルをメンテするだけで永遠に使えると考えるんだ。
どうせその100年のうちに新しい休日ができたり、休日の日付が変わったりするし
平成だっていつ終わるかわからない。
そのためのカレンダーメンテの機能というのはどうせ必要になるんだから。
298 :
名無しさん@八周年:2008/03/02(日) 19:00:15 ID:W9pZbRmn0
299 :
名無しさん@八周年:2008/03/02(日) 19:02:12 ID:LfaRJdRj0
閏年って何?ってゆとりが本当にいそうで怖い
>>297 まあ休日、年号判定となるとアップデート前提になるだろうけど
これは閏年判定だからな
閏年ってなに?
閏日の存在する年のことだな。
if( year % 400 == 0 ){
intercalaryFlg = true;
}else if( year % 100 == 0 ){
intercalaryFlg = false;
}else if( year % 4 == 0 ){
intercalaryFlg = true;
}else{
intercalaryFlg = false;
}
if(intercalaryFlg){
System.out.println("今年は閏年です");
}else{
System.out.println("今年は閏年ではありません");
}
>>241 その論法では逃げられないようになっている。
年齢計算ニ関スル法律(M35法50)により、「誕生日の前日の終了を以て年齢加算」になるので
2/28終了→3/1の時点で年を取る。
今時、閏年の計算を自前でやるのが間違い
専用のライブラリやクラスを使え
307 :
名無しさん@八周年:2008/03/02(日) 19:28:12 ID:Iy8WhcEi0
/* これが決定版 */
!(y % 4) && y % 100 || !(y % 400) ? /*閏年*/:/*平年*/;
ウチの電波時計も3月3日になってもーた。
一度、秒に変換して日付に戻せばいいと思うよ。
>>305 これ、意外と知られてないね。
4月1日生まれは早生まれとか。
>>297 春分の日と秋分の日は政府が前の年に定めるので
正しくやるためには結局毎年修正が必要。
313 :
名無しさん@八周年:2008/03/02(日) 22:18:15 ID:puiLTh9n0
レベル低すぎだな。
314 :
名無しさん@八周年:2008/03/02(日) 22:52:06 ID:nMOnsmp/P
どうせ役所はこの手の事には至極無能なんだから、
毎年2月末日は他の休日と出勤日入れ替えで対応すればいいじゃない。
4年に一度かならずシステム障害を起こす気か。
316 :
名無しさん@八周年:2008/03/02(日) 23:16:50 ID:CJtqJLy60
>>310 そうなっってしまったのが、法案作成者のうっかりミス。
(プログラムなら、バグと言えるお粗末なカンチガイによるもの)
4/1〜3/31で一学年にするつもりで、「4/1時点で満6歳の子が小学校入学」として法案を提出。
気付いたときには既に法案が通った後だったので、結局そのまま。