元号について

解決


でるぷし  2007-05-24 18:52:42  No: 26268  IP: 192.*.*.*

日付への変換関数について質問です。

元号として入力されたEditBoxのTextプロパティから、
日付型の変数に変換してさらにInteger型にしたいのですが、
StrToDateではうまくできません。
(西暦でないと文字列からの変換不可能?)
なので、例えば、H190524と入力された値を元に、
Date型へ格納するにはどのようにしたら良いでしょうか?
ゴリゴリで自分で変換関数を作成しないと駄目でしょうか?

編集 削除
GTR  2007-05-24 19:19:31  No: 26269  IP: 192.*.*.*

VarToDateTime('H19/05/24')で日付型に変換出来ると思います。

編集 削除
でるぷし  2007-05-24 20:22:57  No: 26270  IP: 192.*.*.*

今度その日付型を元に
西暦に再度変換をかけたいのですが
VarToDateTimeにすると
H19年だと2019年にされてしまいます。
そこを考慮した元号→西暦変換は行えないのでしょうか?

編集 削除
でるぷし  2007-05-24 20:32:15  No: 26271  IP: 192.*.*.*

すみません!
できました!
タイプミスでした・・

これからもよろしくお願いします。

編集 削除
why?  2007-05-24 20:44:15  No: 26272  IP: 192.*.*.*

なりますが...
label1.caption:=DateToStr(VarToDateTime('h19/05/24'));
  表示  >> 2007/05/24
label1.caption:=DateToStr(VarToDateTime('s63/05/24'));
  表示  >> 1988/05/24
..これじゃダメ?

編集 削除
かず  2007-05-24 21:14:26  No: 26273  IP: 192.*.*.*

最終的に整数にするなら

 i := StrToInt(Copy(Edit1.Text, 2, 6));

でいけないのかな?
和暦は文字型で処理した方が楽です。日付は日付型でなくても良いのでは
強引かな?

編集 削除
でるぷし  2007-05-28 13:28:40  No: 26274  IP: 192.*.*.*

元号ってFormatDateTime関数の書式指定で
M,T,S,Hと表現する場合は、自分で作成しないと
駄目ですか?
gだと、平や昭など漢字の1文字にされてしまうので・・

編集 削除
cocomo  2007-05-28 13:49:50  No: 26275  IP: 192.*.*.*

Delphi 3 のHelpです
g 元号の先頭 1 文字を表示する(明,大,昭,平)。2.0 では,英字で表現された先頭 1 文字でしたが,このバージョンで変更されています。
理由はわかりませんが仕様変更されているようです。

編集 削除