過去の桐井戸端BBS (桐ver.5)
9880 昭和暦の数値項目を平成暦に変換したい kei 2001/02/22-11:00
みなさんのお力を貸してください
今DOSの桐をver5を使っていて
その中の項目に数値項目で年月日があります
これは昭和歴で入力をしていますが 760221のように
今回windowsに切り替えようと思っていますが

今昭和歴で入れている物を     130221
平成に変換したいのです

なおかつその項目を元に+10日とか日付計算も入れたいのですができるのでしょうか?

9883 Re:日付のことで 宮城 2001/02/22-18:11
記事番号9880へのコメント
keiさん、こんにちは。

>これは昭和歴で入力をしていますが 760221のように
>今回windowsに切り替えようと思って
>いますが
>今昭和歴で入れている物を     130221
>平成に変換したいのです

えっ、「昭和76年」ですか? う〜ん。(@_@)

#数値(#部分列((#文字列[日付]),1,2))
#数値(#部分列((#文字列[日付]),3,2))
#数値(#部分列((#文字列[日付]),5,2))

あたりでバラし、再構築するのが筋ですけど、次の簡便法でいけるでしょう。

[平成日付]を項目追加。項目計算式にこんな感じ。

#条件選択([日付]>0,[]−630000,1,"")

>なおかつその項目を元に+10日とか日付計算も
>入れたいのですができるのでしょうか?

あっと、やっぱり手抜きじゃあだめですね。

[年][月][日][平成日付文字列]を項目追加します。

[年]:#部分列((#文字列[平成日付]),1,2)
[月]:#部分列((#文字列[平成日付]),3,2)
[日]:#部分列((#文字列[平成日付]),5,2)
[平成日付文字列]:"平成"+[年]+"年"
            +[月]+"月"
            +[日]+"日"

(こちらではヌルの時の処理は手抜きしています。必要なら[平成日付]に準じてください。)

かようにして作った[平成日付文字列]に対しては、こういう計算がききます。
10日後の日付が要るのなら項目を追加して、
項目計算式に

#日数加算([平成日付文字列],10)

結果は西暦になりますので、#元号日付という関数もあります。

ところで、大元の[日付]をどのようにジェネレートされているのでしょう?
すごく興味があります(というか心配というか)。

9886 Re:日付のことで 佐田 守弘 2001/02/22-18:28
記事番号9880へのコメント
keiさん
お書きになった日付の持ち方、つまり元号日付を用い、
かつ、年月日の数値を羅列した数字をそのまま数値として扱う方法は、
日付の持ち方としては適しません。
この方法で、記録が不能ではありませんが、その後の日付計算が全くできません。
昭和和暦を平成和暦に変えるだけでしたら、単に630000を引くだけでできるかも知れませんが、
その後の様々な日付計算に支障があります。

●対策
まずデータを日付が扱える形に直して下さい。
Windowsに切替との事ですが、これは桐ver.8に切り換えるという意味でしょうか。
それとも、Windows環境で桐ver.5を使い続けるという意味でしょうか。

桐ver.8にするのであれば、日時型にデータを変換します。
桐ver.5を使い続けるのであれば、文字列型を使います。

まず先にどちらであるかをお知らせ下さい。

佐田守弘(KS-00119)
9888 Re:日付のことで kei 2001/02/22-19:37
記事番号9886へのコメント

桐ver.8に切替予定です
質問しておきながら足りないところが
たくさんあって申し訳ありません

kei


9896 Re:日付のことで toshi-chan 2001/02/23-13:40
記事番号9888へのコメント
keiさん、こんにちは。

まず、表をver8形式に変換して、項目を新設します。
 [年]    数値型
 [月]    数値型
 [日]    数値型
 [年月日2] 日時型
とします。 [年月日]の値から年、月、日の値を切り出します。置換機能を使いましょう。
計算式は各々、
 [年]=#数値(#部分列((#文字列[年月日]),1,2))
 [月]=#数値(#部分列((#文字列[年月日]),3,2))
 [日]=#数値(#部分列((#文字列[年月日]),5,2))
です。次に [年月日2]にも置換機能を使用して値を設定します。式は
[年月日2]=#日時値生成([年]、[月]、[日])
です。そして、 [年月日2] の項目の表示条件を変更します。日時値の表示形式はいろいろ用意されています。
ここでお好みの形式を選んでください。

#日数加算を使用するとX日後の日付を求めることもできます。
9907 Re:日付のことで toshi-chan 2001/02/23-19:00
記事番号9896へのコメント
すみません。操作が1つ抜けていました。

項目[年]の値は「2桁の昭和年」になっているはずです。
これに 1925 を加算すると西暦年になります。
この後に[年月日2]を置換してください。

(130221という形式で和暦の値を持つのはあまりおすすめしません。
どのようなデータを管理していらっしゃるのでしょうか)
9911 以前同じようなことをしていました toshi-chan 2001/02/24-00:09
記事番号9880へのコメント
私もかつて日付をそのような形式で持ったことがあります。

その一括処理システムでは、薬品の出庫管理をしておりました。項目は、
    [年][月][日][出庫先][薬品名][数量]
でした。☆▼課にアルコールを1本、■◎課にベンジンを2本などと入力していたわけです。

このデータを1週間ごとに集計する必要がありました。
集計の始期と終期をキー入力コマンドで入力することにしたわけですが、
[年][月][日]が独立していると、全部で6回キー入力コマンドに対して入力することになります。
そこで、年(西暦4桁)、月(2桁)、日(2桁)を連結して、必ず8桁の数字として取り扱うことにしました。
表には計算項目として[年月日]を追加し、キー入力コマンドにはこの8桁を入力するようにしたわけです。
キー入力コマンドへの入力は2回ですみました。

この頃は、一括処理や関数を覚え始めた頃で、日付文字列の知識も乏しくてこのような方法しか思いつきませんでした。
ただこの方法にはちょっと困ったことがありました。誤って7桁や9桁の数字を入力しても動作してしまうのです。
(一括の組み方でブロックすることもできますが・・・)

桐ver5では、年ごと、あるいは月ごとにグループ化して集計をする都合等で、
[年][月][日]を独立
した項目として持つのがよい、とされてきました。
一方、桐ver8では日時型というデータ型があります。これを使用して行集計する際は、
月ごと(あるいは年ごと)のグループ化を指定できる機能が追加されています。
もちろん、[年][月][日]を独立した項目として持ってもかまいません。

やりたいことを整理し、どのような形式でデータを持つのがよいのかを再検討するとよいと思います。

戻る