工数入力
by
hitode909
2022-01-04 [2022/01/04 11:42:55]
多く時間を使った順にタスクを並べて保持してから実行することで、まんべんなく工数入力する
/*
* @title 工数入力
* @description 多く時間を使った順にタスクを並べて保持してから実行することで、まんべんなく工数入力する
* @include https://atnd.ak4.jp/
* @license MIT License
* @require
*/
var inputs=document.querySelectorAll('input[placeholder="0:00"]');
var total=document.querySelector('#total_working_hours').textContent;
var totalMin=Number(total.split(':')[0])*60+Number(total.split(':')[1]);
var current=1.0;
var rates=Array.from(inputs).map(i => {
let factor=1.0+Math.random()+Math.random();
return current*=factor;
}).reverse();
var rateTotal=rates.reduce((a, b) => a+b);
eachMins=rates.map(rate => Math.floor(rate/rateTotal*totalMin));
var diffMin=totalMin-(eachMins.reduce((a,b)=>a+b));
inputs.forEach(i => {
var min=eachMins.shift()+diffMin;
i.value=`${Math.floor(min/60)}:${min%60}`;diffMin=0;
});
var change = document.createEvent("HTMLEvents");
change.initEvent('change', true, true );
inputs[0].dispatchEvent(change);
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。