一括表示

− 野ざらし言 −

[3172] 日付・曜日・時刻書き込みマクロ

でがらし 2009/04/10(Fri) 07:27
 T.Tanomuraさんの日付書込みマクロ DATE.DEFで日付を書き込んでいますが、

2009年4月10日

 のように、日付しか入力できません。

2009/04/10(Fri) 07:13:21

 のように、時刻まで入力できるマクロをお持ちの方、分けて下され。曜日が入るともっといいです。

[3173] 私tも使っています

キャロル 2009/04/10(Fri) 18:41
[3172]へのコメント
 でがらしさん
 私もdate.defを使っています。
 これはほぼ毎日使いますね。
 時間、そして曜日、確かに魅力的です。
 のりたいです。
 

[3174] 2人でお祈りを

でがらし 2009/04/10(Fri) 22:21
[3173]へのコメント
 そうでしたか。大石さんのT_STAMP.DEFというのが秒まで入力
できるんですけど、メニュー形式なんですよね。それと私のパソ
コンだと、どういうわけか、年号が最後の年(今年だと9)だけ
しか出てこないんです。

 カレンダー・マクロも休日の設定が難点ですね。類似のマクロ
がいくつかあったはずですけど、フォローしていません。私はこ
の頃、EmmettさんのLXCLND.DEFを使うことが多いですね。といっ
ても、利用するのは月に1回か2回ですが。休日が現行の休日に
対応しているのか、知らないままですが、休日の変化があれば自
分で改造できるようになっています。

 では2人して親切なマクロ師が登場することをお祈りしましょ
う。

[3176] タイムスタンプは自分で設定してナンボ

めざら 2009/04/11(Sat) 01:02
[3174]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
> どういうわけか、年号が最後の年(今年だと9)だけしか出てこないんです。

 別にでがらしさんちのパソコンだからというわけではなく,ちゃんと理由があります。恐らくそのマクロは1999年までしか対応しない形で,年をもともと下二桁で出力していたのでしょう。マクロの中の&?("★",▲)の★の部分に%2dというのがあり,▲の部分にcx%100というのがありませんか?

 その行を書き出してみてください。もしかするとcxではなくて他の変数に一旦代入しているかもしれませんけど。

 何故かと言うと,cxには年が入っていて,100で割った余りである9を表示しているからです。2000年未満なら,例えば98とか下二桁で出ていたはずです。必ず下二桁で…2009ならゼロを補って…出力するには,%2dではなく%02dとします。

[3178] T_STAMP.DEF

でがらし 2009/04/11(Sat) 08:57
[3176]へのコメント
 大石さんのT_STAMP.DEFは下記です。軟体にも載っているので、全体を掲載させてもらいます。ご指摘の通り、CX%100はあるんですが、%02dというのもあるんですよね。

 できれば、メニューで

"C 93/10/10(Sun) 19:34:13"

 を先頭に持ってきたいんです。でもメニューで選択すると打鍵数が1つ増えるので、本当はこの形式のタイムスタンプだけを出力する単独マクロがほしいんですが。年数は4桁全部を出力できるでしょうか?

========T_STAMP.DEF ------------------( 93/10/15(Fri) 11:12:49 )
*M
80 ^^ "T_STAMP.DEF"
?.
!01 (r==-1)?>G (r)>?{>A >B >C >D >E}
:A
ax$2c00,&i($21)
&?("%02d:%02d:%02d",cx>>8,$ff&cx,dx>>8).
:B
ax=$2A00,&i($21)&s&?("%d/%02d/%02d (%3s)",cx%100,dx>>8,dx&$FF,"SunMonTueWedThuFriSat"+(ax&$FF)*3)#?.
:C
ax=$2A00,&i($21)&s&?("%d/%02d/%02d(%3s)",
cx%100,dx>>8,dx&$FF,"SunMonTueWedThuFriSat"+(ax&$FF)*3)
&d#?" "ax=$2C00,&i($21)h=cx>>8,i=cx&$FF,j=dx>>8,&?
("%02d:%02d:%02d",h,i,j).
:D
"( date:"
ax=$2A00, &i($21) i=cx, j=dx&$FF, k=dx>>8,
ax=$2C00, &i($21)
&?("%4d-%02d-%02d time:%02d:%02d )",i,k,j,cx>>8,cx&$FF).
:E
a[,b[,
b="0123456789",
ax=$2a00, &i($21)
a=cx/1000,
&01
a=(cx%1000)/100,
&01
a=(cx%100)/10,
&01
a=cx%10,
&01 &o('年')
a=(dx>>8)/10,
&01
a=(dx>>8)%10,
&01 &o('月')
a=(dx&$ff)/10,
&01
a=(dx&$ff)%10,
&01 &o('日')
a="日月火水木金土日"+(ax&7)*2,
&o('(') &?("%2s",a) &o(')')
b],a],
1: &o((b..a)!!).

*P
1 "【メニュー】",33,5
"A 15:30:00"
"B 93/10/10 (Sun)"
"C 93/10/10(Sun) 19:34:13"
"D ( date:1993-10-10 time:15:30 )"
"E 1993年10月10日(日)"
*
---------------$ T_STAMP.DEF ( zenkaku:37 hankaku:455 )------------------

[3180] 調整は簡単です

めざら 2009/04/11(Sat) 09:36
[3178]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
>  できれば、メニューで
> 	"C 93/10/10(Sun) 19:34:13"
>  を先頭に持ってきたいんです。

> !01 (r==-1)?>G (r)>?{>A >B >C >D >E}
    ↓ >C の位置を {ブロック} の最初に移動して,
> !01 (r==-1)?>G (r)>?{>C >A >B >D >E}

    ↓ C の項目を先頭に移すだけ
> 	"C 93/10/10(Sun) 19:34:13"
> 	"A 15:30:00"
> 	"B 93/10/10 (Sun)"

 5分とかからないでしょう。


> でもメニューで選択すると打鍵数が1つ増えるので、本当は
> この形式のタイムスタンプだけを出力する単独マクロがほしいんですが。
> 年数は4桁全部を出力できるでしょうか?

 さっぱりと短くなって,より簡単ですよ。

= TimeStamp
* m
1 ^\ "タイムスタンプ例"
	(s>1)?.		;編集テキストと入力窓だけ出力を許可
	(mr==$80)?.	;ビューモードでは出力しない
	&s
	ax=$2A00, &i($21)
	&?("%d/%02d/%02d",cx,dx>>8,dx&$ff)
	&?("(%3s)","SunMonTueWedThuFriSat"+(ax&$ff)*3)
;;	(ks&1)?>z	;この行を生かすとシフト起動時は日付だけ出力
	ax=$2C00, &i($21)
	&?(" %02d:%02d:%02d",cx>>8,cx&$ff,dx>>8)
 :z	#?
*

[3190] ごちです

でがらし 2009/04/12(Sun) 21:29
[3180]へのコメント
 単純版、ありがたくちょうだいして利用し始めました。助かりますです。

 メニューの変更の仕方、手付かずの印刷用マクロのメニュー化に役立ちそうです。ありがとうございました。

[3191] メニューと分岐の関係

めざら 2009/04/12(Sun) 22:24
[3190]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
でがらしさん,理屈が解れば面倒はあるものの簡単ですよ。

例えば,先のタイムスタンプマクロを例にすると,

        !01     ;呼び出されたメニューは値を受け取って戻ってくる
        (r<0)?>Z →─────────┐  [ESC]などでキャンセル
        (r)>?{ >A >B >C >D >E }  →─┤  r (メニューの戻り値) に従って分岐
               │ │ │ │ │        │
:A ←─────┘ │ │ │ │        │ r==0 なら ラベル A にジャンプ
{ 処理1 } >Z → │-│-│-│─┐    │ { 処理1 }を実行して Z へジャンプ
:B  ←──────┘ │ │ │  │    │ r==1 なら ラベル B にジャンプ
{ 処理2 } >Z →──│-│-│─┤    │ { 処理2 }を実行して Z へジャンプ
:C   ←───────┘ │ │  │    │ r==2 なら ラベル C にジャンプ
{ 処理3 } >Z →─── │-│─┤    │ { 処理3 }を実行して Z へジャンプ
:D  ←─────────┘ │  │    │ r==3 なら ラベル D にジャンプ
{ 処理4 } >Z →─────│─┤    │ { 処理4 }を実行して Z へジャンプ
:E   ←──────────┘  │    │ r==4 なら ラベル E にジャンプ
{ 処理5 } >Z →───────┤    │ { 処理5 }を実行して Z へジャンプ
                               │    │
:Z ←─────────────┴──┘
    ;ここに最後の処理を書く
    ;通常はマクロの最初で保存した変数の復帰やサイレントの解除

*P
1 "【メニュー】",33,5
"A 1番目の項目(戻り値=0)"
"B 2番目の項目(戻り値=1)"
"C 3番目の項目(戻り値=2)"
"D 4番目の項目(戻り値=3)"
"E 5番目の項目(戻り値=4)"
*

 …このようになっています。
 メニューの1番目の項目を選択すると戻り値は 0 のようになっていて,
慣れないうちはこれが少し難しく面倒ですが,それさえクリアしてしまえば
もう怖いことはありません。

 なお,メニューの項目の先頭にあるアルファベットは,見易くするための
飾りみたいなものですが,実は先頭の英字は選択用のショートカットキーに
使うことができます。ジャンプ先ラベルとの対応も本来は関係ないのですが,
後々メンテナンスが楽になることは言うまでもありません。

 ぜひ挑戦してみてください。

[3196] メモずみ

でがらし 2009/04/15(Wed) 20:23
[3191]へのコメント
 はい。これ、ちゃんとメモしました。いずれ試すかもしれませんです。

[3179] 作ってみませんか?

めざら 2009/04/11(Sat) 09:04
[3173]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
 キャロルさん,タイムスタンプ・マクロはそれぞれの人にそれぞれのマクロがあるものだと思います。ですから,ご自分が必要な出力様式を決めて作ってみませんか?

 マクロって使うだけではまるでつまらないですよ。日常で使うものは自分で作ってみて初めて手に馴染ませることができ,愛着も湧くと思います。

 タイムスタンプに必要な手順は,たったふたつです。
1 ファンクションコールで現在日時を取得(年月日と時刻は別)
2 設定した書式で出力

■日付出力の基本
1 ファンクションコールで日付曜日を取得
ax=$2A00, &i($21) ;ファンクションコール(意味を考える必要はありません)
2 設定した書式で出力
&?("%d",cx) ;年を出力 cxをそのまま出力すると2009のように出力
&?("%d",dx>>8) ;月を出力 dxから取り出します
&?("%d",dx&$ff) ;日を出力 dxから取り出します
&?("%d",ax&$ff) ;曜日番号を出力 axから取り出します

 dx>>8 とか dx&$ff などの難解な式がありますが,これはそのまま使うだけです。意味が解らないと使えないなどと言わないで,そのまま使えばよいのです。例えば,漢字で「時」がどうして「日」と「寺」なのか語源が分からないと使ってはいけないでしょうか? そんなことありませんよね。語源を知るのは興味が湧いてからでかまわないのです。

 曜日は数字ではないので問題ですが,考えようです。例えば,
(ax&$ff==1)?"月" ;こんなのを7通り書いても間違いではありません。
通常は,以下のように書きます。
w="日月火水木金土", &?("%2s",w+(ax&$ff)*2)
あるいは,
w="SunMonTueWedThuFriSat"+(ax&$ff)*3, &?("%3s",w)
とか,
&?("%2s","日月火水木金土"+ax&$ff*2)
とか,山のように色々な書き方ができるので,決定的なものはありません。

■時刻出力の基本
ax=$2C00, &i($21) ;ファンクションコール(意味を考える必要はありません)
&?("%d",cx>>8) ;時を出力します
&?("%d",cx&$ff) ;分を出力します
&?("%d",dx>>8) ;秒を出力します

 基本はこれだけで,必要に応じて途中に単位や区切り記号の文字などを書き出すだけです。作り方によっては,としきさんが挙げている三浦さんのマクロのように,通常起動で日付だけ,シフト実行すると時刻も出力など,色々出力の調整を楽しむこともできます。

[3185] 楽しい宿題、御礼

キャロル 2009/04/11(Sat) 22:19
[3179]へのコメント
 めざらさん

 丁寧にありがとうございます。
 しばらく楽しめそう(or 苦しみそう)です。
 こういう刺激がないと、年のせいでしょうか、意欲がわきません。
 困ったら、改めて質問しますね。

[3187] 禁欲は禁物

めざら 2009/04/12(Sun) 07:05
[3185]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
>  困ったら、改めて質問しますね。

 いやいや,困らないうちにどんどん質問してください。

 どうも禁欲的な人が多くて,訊いてくるときには「もう2年も悩んでるんですが」なんてこともあるのですが,如何に時間を無駄にしたかを考えると非常に勿体無い話ですね。エコロジーではないですよね。さっさと仕事を終わらせ趣味や家族サービスに振り向ける時間を作るために,VZマクロで元気にいきましょう。…て感じで。

[3175] Re: 日付・曜日・時刻書き込みマクロ

としき 2009/04/10(Fri) 23:57
[3172]へのコメント http://www.hinocatv.ne.jp/~toshiki/
とりあえず、私が使っているマクロです。
原作者は三浦茂さんです。自分用に、多少の改造は加えてあります。

33 [ESC]T "Time"
        (s>2)?.
        ax=$2A00, &i($21),
        &s
;        w="日月火水木金土"+(ax&$FF)*2,
        w="SunMonTueWedThuFriSat"+(ax&$FF)*3,
        &?("%3s, %02d ",w,dx&$FF)
        w="JanFebMarAprMayJunJulAugSepOctNovDec"+((dx>>8)-1)*3,
        &?("%3s 20%02d",w,cx%100)
        (ks&1)?{&d .}
        ax=$2C00, &i($21),
        &?(" %02d:%02d:%02d +0900 (JST)",cx>>8,cx&$FF,dx>>8)
        &d
        .

表示形式は、ご自分でいじって下さい。
現状は、電子メールでよく使われる形式になっています。
 

[3177] 希望通りの情報

でがらし 2009/04/11(Sat) 08:41
[3175]へのコメント
 さっそく試してみました。希望通りの情報がすべて出力します。ありがとうございました。このマクロのオリジナルは軟体の三浦さんのところに載ってないですね。

 希望通りの情報ではありますが、表示順序をいじるのはなんだかむずかしそう。今の電子メールってこういう感じでタイムスタンプが出てくるんですか。知らんかったです。

↑ このページの先頭