カウントダウンさすマクロはありませんかNo.16470
sugisaku さん 04/01/19 09:17
 
おはようございます、sugisaku です。

マクロライブラリーで検索しましたが見つかりませんでしたのでここにお願い致
します。


 アテネオリンピックまで後 207 日

すなわち (今日-2004/08/13)と言う計算式です。
上記のように 207 をカウントダウンさせるマクロを作成おねがいできますでしょ
うか。(アテネオリンピック開催日 2004/08/13)

--2004/01/19 (月) 09:07:10♪

[ ]
RE:16470 カウントダウンさすマクロはありNo.16473
ENCODINGSHIFTJIS さん 04/01/19 10:25
 
// 日付計算はテキスト処理というよりアプリケーションかな。runsync あたりでどうぞ
//日時を表すのに[ .Net Framework ]には DateTime 構造体が用意されています。
//これとは別に、日時の差を表すために、TimeSpan 構造体が用意されています。

// ここでは WSH です, dotNET のほうがいいでしょうか?

===========  コマンド プロンプト> cscript a.JS

d =  Math.floor((Date.parse("2004/08/13") - (new Date()).getTime())/(24 * 60
 * 60 * 1000));

WScript.Echo(d);

[ ]
RE:16470 カウントダウンさすマクロはありNo.16474
でるもんた さん 04/01/19 11:09
 
> 例
>  アテネオリンピックまで後 207 日
>
> すなわち (今日-2004/08/13)と言う計算式です。
> 上記のように 207 をカウントダウンさせるマクロを作成おねがいできますでしょ
> うか。(アテネオリンピック開催日 2004/08/13)

秀丸マクロだけできないこともないです。

グレゴリオ暦(現在の暦)で0年3月1日を1として日付に番号を振ると、
y年m月d日(1月、2月は前年13月、14月として計算する)は
365y + 切捨(y/4) + 切捨(30.6(m-3) + A) + d
     ※Aは0.4≦A<0.6なら何でもいいので0.4としておく
になりますので、こんな感じで。


call YMDtoNumber val(year),val(month),val(day);
#today = ##return;
call YMDtoNumber 2004,8,13;
#olympic = ##return;
message "アテネオリンピックまで" + str(#olympic-#today) + "日です";
endmacro;

YMDtoNumber:
##y = ##1;
##m = ##2;
##d = ##3;
if (##m<=2) { ##y=##y-1; ##m=##m+12;}
return ##y*365 + ##y/4 + (153*##m+2)/5 + ##d;

[ ]
RE:16473 カウントダウンさすマクロはありNo.16475
sugisaku さん 04/01/19 11:19
 
ENCODINGSHIFTJISさん おはようございます、sugisaku です。

> ===========  コマンド プロンプト> cscript a.JS
>
> d =  Math.floor((Date.parse("2004/08/13") - (new Date()).getTime())/(24 * 60
>  * 60 * 1000));
>
> WScript.Echo(d);

早速のご教示有難うございます。
残念ながら当方何の知識もないため、上記スクリプトを秀丸上で使用するには具
体的にどのようにすれば宜しいんでしょうか?
又、秀丸上で使用できないときは、上記スクリプトの具第的な使用方法をお教え
頂けませんか、何卒宜しくお願い致します。

-- 2004/01/19 (月) 11:11:25 ♪

[ ]
RE:16474 カウントダウンさすマクロはありNo.16476
sugisaku さん 04/01/19 11:30
 
でるもんたさん おはようございます、sugisaku です。

> call YMDtoNumber val(year),val(month),val(day);
> #today = ##return;
> call YMDtoNumber 2004,8,13;
> #olympic = ##return;
> message "アテネオリンピックまで" + str(#olympic-#today) + "日です";
> endmacro;
>
> YMDtoNumber:
> ##y = ##1;
> ##m = ##2;
> ##d = ##3;
> if (##m<=2) { ##y=##y-1; ##m=##m+12;}
> return ##y*365 + ##y/4 + (153*##m+2)/5 + ##d;

早速有難うございます。上記をカウントダウン .mac として秀丸上で実行しまし
たが、ダイアログと言うんてすかそれには正常に表示されますが、カーソル位置
に結果が表示されません。何とかカーソル位置に挿入できませんでしょうか。
宜しくお願い致します。

-- 2004/01/19 (月) 11:23:42 ♪

[ ]
RE:16476 カウントダウンさすマクロはありNo.16478
でるもんた さん 04/01/19 11:41
 
でるもんたです。

> > call YMDtoNumber val(year),val(month),val(day);
> > #today = ##return;
> > call YMDtoNumber 2004,8,13;
> > #olympic = ##return;
> > message "アテネオリンピックまで" + str(#olympic-#today) + "日です";
> > endmacro;
...
> 早速有難うございます。上記をカウントダウン .mac として秀丸上で実行しまし
> たが、ダイアログと言うんてすかそれには正常に表示されますが、カーソル位置
> に結果が表示されません。何とかカーソル位置に挿入できませんでしょうか。
> 宜しくお願い致します。

message のところを insert に変えると、ダイアログを出す代わりにカーソル位置
に挿入します。
文面ももちろん変えられますし、カウントダウンの基準日(2004/8/13)も3行目を
いじれば別の日にできます。

この機会に是非、秀丸マクロの勉強をされてみては。

[ ]
RE:16478 カウントダウンさすマクロはありNo.16480
sugisaku さん 04/01/19 13:22
 
でるもんたさん こんにちは、sugisaku です。

> message のところを insert に変えると、ダイアログを出す代わりにカーソル位置
> に挿入します。
> 文面ももちろん変えられますし、カウントダウンの基準日(2004/8/13)も3行目を
> いじれば別の日にできます。

詳細にお教え頂き有難うございました。
 
> この機会に是非、秀丸マクロの勉強をされてみては。

一念発起してそうさせて頂きますので、今後とも宜しくお願い致します。

-- 2004/01/19 (月) 13:16:47 ♪

[ ]
RE:16475 カウントダウンさすマクロはありNo.16483
ENCODINGSHIFTJIS さん 04/01/19 14:06
 
----------- a.mac
beginsel;  // CON 出力を受けるカーソル位置で
run "cscript//NOLOGO \"C:\\Documents and Settings\\リオのカーニバル\\デスク
トップ\\p.JS\" >con";
---------

206

Web検索で
通算日
カレンダー計算
暦の計算
などの単語で検索すると多数出ます。
Zellerの公式など薀蓄は多い分野です。

[ ]
RE:16483 カウントダウンさすマクロはありNo.16484
ENCODINGSHIFTJIS さん 04/01/19 14:14
 
スクリプトの発見方法
Web検索  「アテネオリンピックまで後 日」
そのページを開き、HTMLソースを表示する。
<script language="javascript">
<!--
var sakiday = new Date("2004/08/13");//オリンピックまであと
 var now = new Date();
 var tokuteiday = Math.floor((sakiday.getTime()-now.getTime())/(24*60*60*100
0));
document.write("<b>"+tokuteiday+"</b>");
//-->
</script>
スクリプト部分を .JS で保存する。

[ ]
RE:16483 カウントダウンさすマクロはありNo.16487
sugisaku さん 04/01/19 16:22
 
ENCODINGSHIFTJISさん こんにちは、sugisaku です。

> ----------- a.mac
> beginsel;  // CON 出力を受けるカーソル位置で
> run "cscript//NOLOGO \"C:\\Documents and Settings\\リオのカーニバル\\デスク
> トップ\\p.JS\" >con";
> ---------
>
> 206
マクロを作成頂き有難うございます。
しかしすみません、上記のようにするとセルの位置に何も表示されないんですが。
//NOLOGO を削除するとやはり下記のように開始表示がついてしまいます。

Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

206


-- 2004/01/19 (月) 16:13:07 ♪

[ ]
RE:16484 カウントダウンさすマクロはありNo.16488
sugisaku さん 04/01/19 16:22
 
ENCODINGSHIFTJISさん こんにちは、sugisaku です。

> スクリプトの発見方法
> Web検索  「アテネオリンピックまで後 日」
> そのページを開き、HTMLソースを表示する。
有難うございます。成る程、ソース表示で参照できるわけですか、大変勉強にな
りました。

-- 2004/01/19 (月) 16:19:45 ♪

[ ]
RE:16487 カウントダウンさすマクロはありNo.16491
ENCODINGSHIFTJIS さん 04/01/19 18:01
 
cscript //NOLOGO ...
が正解です。スペースを空けます

詳しくは
コマンド プロンプト>cscript/?
です

[ ]
RE:16491 カウントダウンさすマクロはありNo.16492
sugisaku さん 04/01/19 19:11
 
ENCODINGSHIFTJISさん こんばんわ、sugisaku です。

> cscript //NOLOGO ...
> が正解です。スペースを空けます

できました、有難うございました。
これを機会にマクロについて学習していきたいと思います。

-- 2004/01/19 (月) 19:08:46 ♪

[ ]
RE:16483 カウントダウンさすマクロはありNo.16495
でるもんた さん 04/01/19 20:22
 
でるもんたです。

> Web検索で
> 通算日
> カレンダー計算
> 暦の計算
> などの単語で検索すると多数出ます。
> Zellerの公式など薀蓄は多い分野です。

はい。Zeller の公式というのは hidesoft.2:16474 で私が書いた式を元に曜日を
算出する公式です。
ただし、私が書いた式は当然ながら、現在の暦法が採用される前の時代(日本なら
明治5年まで)には適用できません。明治5年以前、つまり旧暦の計算は、二十四
節季の天文計算が必要なので、ちょっと私の手には負えません。

これについては「日本と中国で同じ計算方法なのに、暦の基準になる時刻が日本
時間では0時台・中国時間では前日23時になるため、日中で暦が大きく違ってしま
う事例があった」といった蘊蓄があるんですけど、掲示板の趣旨から外れるので
このへんにしておきます。

[ ]
RE:16488 カウントダウンさすマクロはありNo.16497
encodingshiftjis さん 04/01/19 22:41
 
Webに公開されているものを拾うときは
そのまま信じてはいけないかも。
この式では当日は−1と表示されます。
PCの日付を前日や当日にして「確認」します。

Math.floor ではなく
Math.ceil   のほうが。

時刻( millisecond )も含んで計算しているためのミス
nowを日に切り捨てると正しかったのに。



[ ]
RE:16497 カウントダウンさすマクロはありNo.16498
encodingshiftjis さん 04/01/19 22:53
 
日本オリンピック委員会のページはサーバーのカウンタ画像ですね
現地時間の処理を考えるとしたら、UTCで計算するように
Javascriptを書き換えないとダメですね、(重箱の隅)。

[ ]
RE:16497 カウントダウンさすマクロはありNo.16499
sugisaku さん 04/01/20 06:07
 
encodingshiftjis さん おはようございます、sugisaku です。

> Math.floor ではなく
> Math.ceil   のほうが。
 
Math.ceilにすると浮動小数点が整数に直された数値が出ました。
本当に色々とお世話になり、私にはいい勉強になり有難うございました。

--2004/01/20 (火) 05:59:58♪
アテネオリンピックまで後 206 日

[ ]
RE:16495 カウントダウンさすマクロはありNo.16500
sugisaku さん 04/01/20 06:17
 
でるもんた さん おはようございます、sugisaku です。

[hidesoft.2:16494]
>run 文の引数が間違っていますね。
>run "cscript /NOLOGO \"C:\\Documents and Settings\\リオのカーニバル\\デ
スク
>トップ\\p.JS\" >con"; ですね。
>「//NOLOGO」ではなくて、スペースをあけて「/NOLOGO」です

[hidesoft.2:16495]
> はい。Zeller の公式というのは hidesoft.2:16474 で私が書いた式を元に曜日を
> 算出する公式です。
> ただし、私が書いた式は当然ながら、現在の暦法が採用される前の時代(日本なら
> 明治5年まで)には適用できません。明治5年以前、つまり旧暦の計算は、二十四
> 節季の天文計算が必要なので、ちょっと私の手には負えません。
>
> これについては「日本と中国で同じ計算方法なのに、暦の基準になる時刻が日本
> 時間では0時台・中国時間では前日23時になるため、日中で暦が大きく違ってしま
> う事例があった」といった蘊蓄があるんですけど、掲示板の趣旨から外れるので
> このへんにしておきます。

本当に今回は色々とお世話になり有難うございました。
マクロに興味が沸いてきましたので、今後は暇を見つけては勉強して参りたいと
思います。

--2004/01/20 (火) 06:09:26♪
アテネオリンピックまで後 206 日

[ ]