generated at
開始時間・終了時間の文字列を選択して合計時間を出すUserScriptを作りたい
ここでUserScriptの依頼って可能ですか?

作りたいスクリプトはあるけど、よくわからない
これから仕事なので、夕方にまた…。
がんばえ~~
仕事のタスクメモとして、
201020納期 // #〇〇工業 / Mail / 完成品 #201009受注
10/09 13:00~16:00 3H
までを自作のUserScriptで作ってあって、下段の時間のところを(3Hの部分)、13:00~16:00を選択してメニューを選ぶだけで計算してほしい!
断片だけ
fragment1.js
const 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`; };
やっつけで作った
developer toolのconsoleに貼り付ければテストできます
あとは format をいい感じにrefactoringして該当のUserScriptに組み込めばおk
Popup menuなら scrapbox.PopupMenu.addButton を使ったり
実行例
fragment1-test.js
const 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
おー!ありがとうございます
なにがどうなのかわかりませんが、なんか違う…。
ごめんなさい、全くどうしたらいいかわかりません
おそらく私がテストのやり方を間違えているのかな?と思います
developer toolに貼り付けるとこんな感じです
どのような方法でテストしたのか書いていただけるとわかるかもですtakker
自分の個人project内に format('13:30~16:30) と書いて、上記のスクリプトをコンソールに貼り付けました。
それは動きません。変数(函数)の宣言順序と、scriptのscopeを考えてみて下さい
こうなりました
あ、違うところがある、なるほど、そうするのか……やってみよう
だめですね、見た目同じですがシンタックスエラーが出ますね
デベロッパーツール、難しいですねぇ。普段触りませんし…というかWebツール作りたくて参考書買いましたが意味わかんなくて…。いま出先なので帰ったらまた試します。
developer toolが難しかったら、UserScriptに直打ちでも問題ないです。
単にdeveloper toolが一番簡単そうに思えたので使っただけです。javascriptを動かせる環境であればどこでもtestできます
昼から妻がPCを使うようなので、今Fire tab8にjavascriptのアプリ入れて試したらできました。が、時間表記はされますが、分表記が出なくてどうするのかなぁ?と頭を抱えてしまいました
作ってもらったのにテストできずすいません
これ、 Math.floor() (端数切捨て)を使っているけど、これでいいの?suto3
console.log(format('12:40〜14:39')); だと、 1H が返ってくるけど
出来れば、1H15Mみたいな表記が欲しいですねぇ
Mまで欲しかったのですか。それは気づきませんでしたtakker
開始時間・終了時間の文字列を選択して合計時間を出すUserScriptを作りたい#5f7ffe5486501c0000a6453cには 3H とだけ合ったので、てっきりMは切り捨てるものかと……
すみません、説明不足で
修正しました。takker
長々とありがとうございました。あとはチョコチョコイジってみたいと思います。
ういです。ぜひぜひいじってみてくださいtakker

どんなスクリプト?実装方法がわからない?
作りたいtakkertakkertakker
どういうことしたいか文章or Drawingで書いていただければ
本当に作れるかどうかはわからない
そもそも情報系の人間じゃないし
え?そうなの?

実現したいことがうまく書けなくても、書いてみよう
また新しいUserScriptをお願いしたいと企んでいます。まだ準備が出来てないので後日になります。

初めて、ページリスト上のタイトルが書き換わる光景を観たdnin
みたかったなーtakker
なんかこう、パタパタが
反転フラップ式案内表示機が動いているのを観た感じに近い?
空港 時刻表示 パタパタ で出てきた
Scrapbox Drinkup中にshokaiさんのプロジェクトとかDrinkupのプロジェクト見るとものすごい速さで更新されて面白いですよ

/takker/tritask-scrapboxの技術を転用すれば、もっと楽にやれそう

UserScript