[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/11/05(Sat) 11:18
投稿者名:nobu
URL :
タイトル:
和暦で日付を表示したい
和暦で日付を表示する方法を探しています。
"H17/11/3"という形で表示したいのですが、新しい元号が発行された場合
でも対応する必要がでてきまして、自力で作成しようかどうしようか検討
中です。(xxxx年xx月xx日以降は、平成〜・・・というような事)

これは、自力で作成しないと無理なのでしょうか?このようなことを行って
くれるコントロールがあるのが一番楽なのですが・・・(Edit&Grid)

このようなことを行ったことのある方がいらっしゃいましたら、アドバイス
をお願いします。

※素朴な疑問なんですが、元号の”平成”や”H”って、OSから取得する
  ものだと思っています。なので和暦表示をしてくれるコントロールが単純
  にOSから取得しているだけであれば、Windows Updateで更新されるんじゃ
  ないのかな〜と思っていたりします。

投稿時間:2005/11/05(Sat) 12:00
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 和暦で日付を表示したい
> 和暦で日付を表示する方法を探しています。
探しているなら、ここの[日付・時刻関係]はご覧になったのでしょうか?
特に、一番最初の項目!!

投稿時間:2005/11/05(Sat) 12:45
投稿者名:nobu
URL :
タイトル:
Re^2: 和暦で日付を表示したい
> > 和暦で日付を表示する方法を探しています。
> 探しているなら、ここの[日付・時刻関係]はご覧になったのでしょうか?
> 特に、一番最初の項目!!

見ました。Format$で作成すれば実装できるところまではいいのですが、
悩みの種なのが、”新しい元号”のところです。
「OSが自動で対応してくれるから、任せておけば大丈夫!」というところ
が知りたいです。

・・・若干、スレ違いな気がしてきました。気分を害された方、申し訳ありません。

投稿時間:2005/11/05(Sat) 14:35
投稿者名:KEN
Eメール:
URL :
タイトル:
Re^2: 和暦で日付を表示したい
> > 和暦で日付を表示する方法を探しています。
> 探しているなら、ここの[日付・時刻関係]はご覧になったのでしょうか?
> 特に、一番最初の項目!!

和暦形式の日付取得方法ではなく、元号についての質問だと思いますが…。

もし本当に元号が変わったとしても、最終的にアップデートなどの対策を取るのは、
本人(マイクロソフト)の都合なので、直接聞いてみるしかないかと。

投稿時間:2005/11/07(Mon) 01:56
投稿者名:nobu
URL :
タイトル:
Re^3: 和暦で日付を表示したい
> もし本当に元号が変わったとしても、最終的にアップデートなどの対策を取るのは、
> 本人(マイクロソフト)の都合なので、直接聞いてみるしかないかと。

やっぱり本人に直接聞いてみなきゃだめですかね。
がんばってみます。どこから問い合わせするんだったか・・・。Microsoftサイトを旅
してきます。

投稿時間:2005/11/07(Mon) 10:09
投稿者名:ダンボ
URL :
タイトル:
Re^4: 和暦で日付を表示したい
> やっぱり本人に直接聞いてみなきゃだめですかね。
> がんばってみます。どこから問い合わせするんだったか・・・。Microsoftサイトを旅
> してきます。

尋ねて気が晴れるならばそれはそれで価値があるかもしれないけれど、こんな答えになると
予想します。結局は何も保証できない。

「弊社Microsoftでは、将来起こりうる元号変更に対しては鋭意追従する所存でございますが
具体的な日時・提供方法に関しましては実際に元号変更が発生してからの対応になります。
弊社で提供している製品は将来の対応を確約するものではありません」

投稿時間:2005/11/15(Tue) 16:28
投稿者名:すいけ
Eメール:
URL :
タイトル:
Re^5: 和暦で日付を表示したい
ずいぶん遅レスですが
私も同じような経験をしたことがあります。
そのときはMicrosoftの対応をユーザーが待てないと言うことで
DBの中に元号Tableを作成し日付と元号を入れておきました。
(inifileなどでもできます)

日付変換表示(西暦→和暦)の関数を一つ作っておけば
日付に関しては全部ここを通すという感じになります。
関数は複数変換に対応させることをお勧めします。

例えば下記のようなテーブルを用意して処理すると楽です。

元号Table
GNo    Gengo    StartDate
1    明治    1868.9.8
2    大正    1912.7.30
3    昭和    1926.12.25
4    平成    1989.1.8

で、一件の変換であればSQL1文ですんでしまいます。
SQLstr = "Select Gengo From 元号Table Where StartDate <= " & TargetDate & " Order by StartDate DESC;"
(久しぶりなんで間違ってたらごめんなさい)
これでTargetDateにはいっている日付より小さく且つその中で最大のレコードがTopにきてるはずです。

複数変換が必要であれば
SQLで全部持ってきておいて配列にいれ
配列の最大値までループでまわしながら該当する元号を見つけたらループを抜けて
次のTargetDateをまた頭からまわす。
Dataに偏りが有る場合(たとえば平成Dataが多いのであれば)
配列自体は平成から明治へと順番に回すようにすると多少ですが処理が軽くなります。

この昨日は何度も変換するよりこの変換機能を処理上のどこに置くかによって
全然違いますのでSEやユーザーとよく相談して決めるのがいいでしょう。

もちろん元号Tableへのマスター登録削除編集機能は忘れずに・・