過去の桐井戸端BBS (桐ver.9)
27266 変数や関数で今日の日付を取得していますが他のパソコンではうまくいかない HAGIRI 2004/08/04-10:25
今日の日付(年月日)を取得しようとしています。
変数と関数を利用してやってみました。
どちらの場合も、自分のパソコン(作成した場所)では、今日の日付が取得できます。
でも、他のパソコンで使用すると『2002年』と表示される場合があります。
コレを回避する方法はありませんか?
また、別の方法があれば教えてください。
27267 Re:今日の日付の取得について 脱初級! 2004/08/04-10:35
記事番号27266へのコメント
HAGIRIさん、こんにちわ。

日付の取得は、こんなのができますよ。

1.「平成16年 8月 4日」と表示したい。
(関数記述例)
 #全角(#文字列(#元号日付(#年月日,1)))

2.上の空白を取って、「平成16年8月4日」と表示。

 #文字置換(#全角(#文字列(#元号日付(#年月日,1)))," ","")

3.さらに、曜日を表示。「平成16年8月4日(水)」

 #文字置換(#全角(#文字列(#元号日付(#年月日,1)))," ","")+"("+#曜日(#元号日付(#年月日,1))+")"


>でも、他のパソコンで使用すると『2002年』と表示される場合があります。

パソコンが変わると、日付表示が変わるというのは、おかしい感じがするのですが、

"平成"+#全角(#文字列(&年-1988))+"年")

をというように変数&年を用いるのでしたら、1988を引いてやる、という手がありますよ。

こんなもんでどうでしょ?


27269 Re:今日の日付の取得について 悲しげ 2004/08/04-11:02
記事番号27266へのコメント
可能性1
そのパソコンの内蔵時計が2002年になっている?

可能性2
桐の環境設定で日時型の表示形式が他のマシンのそれと違っていて計算式が違算をする?


27276 Re:今日の日付の取得について ONnoji 2004/08/04-12:56
記事番号27269へのコメント
HAGIRIさん、こんにちは。

悲しげさんが、すでにお書きになっていますが、
私もパソコンの日付が正しくない可能性が高いような気がします。

ただし、#年月日を使うと取り出した文字列は環境設定で指定した日時の表示形式と同じです。

日付文字列、すなわち文字列データを使うと、
環境設定で [mm/dd/yyyy] または
[dd/mm/yyyy] の表示形式を選択されている時、具合が悪いことがあります。

そこで、日時値データを返す #日時値 を利用するといいと思います。

ただし、DOS桐にはこの関数はありません。

元号の日付文字を作るには、次のようにしたらいかがでしょうか。

#元号日付( #日時値, 1 ) → 平成16年 8月 4日

#元号日付( #日時値, 2 ) → H16-08-04

#元号日付( #日時値, 3 ) → 160804


元号以外の日付文字列を作るには、次のようにしたらいいかがでしょうか。

#日付( #日時値 , 1 ) → 2004-08-04

#日付( #日時値 , 2 ) → August 4, 2004

#日付( #日時値 , 3 ) → 040804

#日付( #日時値 , 4 ) → 環境設定の表示形式

外していたらすいません。


27320 Re:今日の日付の取得について HAGIRI 2004/08/09-09:21
記事番号27266へのコメント
皆さんありがとうございます。

パソコンの日付がおかしい(間違っている)というのは、パソコン自体の日付の設定が間違っているということでしょうか?
見てみたところ、全て同じ日付でした。
桐の環境設定も同じなんですけどねぇ…

他に原因があるのでしょうか・・・?

27321 Re:今日の日付の取得について 悲しげ 2004/08/09-15:03
記事番号27320へのコメント

>変数と関数を利用してやってみました。

この計算式を挙げてみて下さい。
多分、関係なさそうですが、念のため。

27322 Re:今日の日付の取得について HAGIRI 2004/08/09-16:04
記事番号27321へのコメント
>>変数と関数を利用してやってみました。
>
>この計算式を挙げてみて下さい。
>多分、関係なさそうですが、念のため。

今日の日付といっても正確には『年』と『月』が欲しいので『日』は書いていません。

 *変数を使った場合
    &年 と &月

 *関数を使った場合
    #月(#DATE)
    #年(#DATE)

一応、こんな感じで書いてみたのですが…。

27323 Re:今日の日付の取得について 悲しげ 2004/08/09-18:31
記事番号27322へのコメント
「2002年」と出るパソコンで次の一括処理を動かしてみて下さい。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
メッセージボックス "確 認" \
 ,"■ 変数「&年」の値="+#str(&年)+"年\n\n" \
 +"■ 関数「#年(#DATE)」の値="+#str(#年(#DATE))+"年" \
 ,アイコン=i,ボタン指定=1,制御文字展開=する
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
この値が正しく「2004年」と表示されるかどうか?


あるいはNo.27266で wrote

>でも、他のパソコンで使用すると『2002年』と表示される場合があります。

の意味が、概ねは「2004年」なのだが、まれに「2002年」となることがあると云うことであるのならば、
可能性として考えられるのは、他の一括処理なり、表定義なり、フォームの中などで、組込変数「&年」の値をいぢくっている、とか?

27324 Re:今日の日付の取得について 悲しげ 2004/08/09-18:36
記事番号27323へのコメント
その前に

>でも、他のパソコンで使用すると『2002年』と表示される場合があります。

この「場合」が、常になのか、しばしばなのか、まれになのか、
つまり頻度の確認が先ですね。

27325 Re:今日の日付の取得について 悲しげ 2004/08/09-18:42
記事番号27323へのコメント
>と云うことであるのならば、可能性として考えられるのは、他の一括処理な
>り、表定義なり、フォームの中などで、組込変数「&年」の値をいぢくって
>いる、とか?

これは、それらを「同時に」動かしている場合もありますが、「直前に」動かしていた場合(桐を終了させないで)も含みます。
桐を終了させなければ、組込変数や共通変数の値は、前回のまま保存されていますから。


27327 Re:今日の日付の取得について ONnoji 2004/08/10-09:39
記事番号27325へのコメント
HAGIRIさん、こんにちは。

悲しげさん、横レスで失礼いたします。

表( .tbl )の項目計算式だったりしないでしょうか??

項目計算式で日付の計算をしているのならば、
再計算(計算項目で[置換]を選択)するといいかもしれません。

現実の世界の日付は日々進んでいきますが、
項目計算式の値は再計算されない限り書き換わりませんから。

または、以前に書き出した変数ファイルを読み込んだために、
映画のバックツーザフューチャーみたいになっていたり…

タラレバ話ですいません。

戻る