開始時間・終了時間の文字列を選択して合計時間を出すUserScriptを作りたい
作りたいスクリプトはあるけど、よくわからない
これから仕事なので、夕方にまた…。
がんばえ~~
仕事のタスクメモとして、
201020納期 // #〇〇工業 / Mail / 完成品 #201009受注
10/09 13:00~16:00 3H
までを自作のUserScriptで作ってあって、下段の時間のところを(3Hの部分)、13:00~16:00を選択してメニューを選ぶだけで計算してほしい!
断片だけ
fragment1.jsconst format = text => {
const [begin, end] = text.replace(/(\d+:\d+)[^\d]*(\d+:\d+)/,'$1,$2')
.split(',')
.map(time => {
const [hour, minute] = time.split(':');
return parseInt(hour)*60+parseInt(minute);
});
const duration = end -begin;
const minutes = duration % 60;
const hours = Math.floor(duration / 60);
return minutes !== 0 ? `${hours}H${minutes}M` : `${hours}H`;
};
やっつけで作った
あとは format
をいい感じにrefactoringして該当のUserScriptに組み込めばおk
Popup menuなら scrapbox.PopupMenu.addButton
を使ったり
実行例
fragment1-test.jsconst format = text => {
const [begin, end] = text.replace(/(\d+:\d+)[^\d]*(\d+:\d+)/,'$1,$2')
.split(',')
.map(time => {
const [hour, minute] = time.split(':');
return parseInt(hour)*60+parseInt(minute);
});
const duration = end -begin;
const minutes = duration % 60;
const hours = Math.floor(duration / 60);
return minutes !== 0 ? `${hours}H${minutes}M` : `${hours}H`;
};
console.log(format('10:00〜12:00'));
// → 2H
console.log(format('13:00〜16:00'));
// → 3H
console.log(format('16:00〜15:00'));
// → -1H
console.log(format('12:40〜14:45'));
// → 2H5M
おー!ありがとうございます
なにがどうなのかわかりませんが、なんか違う…。
ごめんなさい、全くどうしたらいいかわかりません
おそらく私がテストのやり方を間違えているのかな?と思います
どのような方法でテストしたのか書いていただけるとわかるかもです
自分の
個人project内に
format('13:30~16:30)
と書いて、上記のスクリプトをコンソールに貼り付けました。
それは動きません。変数(函数)の宣言順序と、scriptのscopeを考えてみて下さい
こうなりました
あ、違うところがある、なるほど、そうするのか……やってみよう
だめですね、見た目同じですがシンタックスエラーが出ますね
デベロッパーツール、難しいですねぇ。普段触りませんし…というかWebツール作りたくて参考書買いましたが意味わかんなくて…。いま出先なので帰ったらまた試します。
単に
developer toolが一番簡単そうに思えたので使っただけです。javascriptを動かせる環境であればどこでもtestできます
昼から妻がPCを使うようなので、今Fire tab8にjavascriptのアプリ入れて試したらできました。が、時間表記はされますが、分表記が出なくてどうするのかなぁ?と頭を抱えてしまいました
作ってもらったのにテストできずすいません
これ、
Math.floor()
(端数切捨て)を使っているけど、これでいいの?
console.log(format('12:40〜14:39'));
だと、 1H
が返ってくるけど
出来れば、1H15Mみたいな表記が欲しいですねぇ
Mまで欲しかったのですか。それは気づきませんでした
すみません、説明不足で
修正しました。
長々とありがとうございました。あとはチョコチョコイジってみたいと思います。
ういです。ぜひぜひいじってみてください
どんなスクリプト?実装方法がわからない?
どういうことしたいか文章or Drawingで書いていただければ
本当に作れるかどうかはわからない
そもそも情報系の人間じゃないし
え?そうなの?
実現したいことがうまく書けなくても、書いてみよう
また新しい
UserScriptをお願いしたいと企んでいます。まだ準備が出来てないので後日になります。
初めて、ページリスト上のタイトルが書き換わる光景を観た
みたかったなー
なんかこう、パタパタが
空港 時刻表示 パタパタ
で出てきた