Перейти к основному содержимому
claw
am
tools
Инструменты
Документы
Daoark
EN
Главная
Главная
/
Быт и полезное
›
Главная
manifest.json
= 0; return false; } var patternEl = $('pattern'); var customGroup = $('custom-group'); patternEl.addEventListener('change', function() { customGroup.style.display = patternEl.value === 'custom' ? 'block' : 'none'; }); function doProcess() { try { var sStr = getVal('start-date'); var eStr = getVal('end-date'); if (!sStr || !eStr) { showError('请输入起止日期'); return; } var s = new Date(sStr + 'T00:00:00'); var e = new Date(eStr + 'T00:00:00'); if (e < s) { showError('结束日期不能早于开始日期'); return; } var pattern = getVal('pattern'); var custom = []; if (pattern === 'custom') { var checks = customGroup.querySelectorAll('input[type=checkbox]:checked'); for (var i = 0; i < checks.length; i++) custom.push(checks[i].value); if (custom.length === 0) { showError('自定义模式请至少选 1 个休息日'); return; } } var totalDays = 0, workDays = 0, restDays = 0; var cur = new Date(s); while (cur <= e) { totalDays++; if (isRest(cur, pattern, custom)) restDays++; else workDays++; cur.setDate(cur.getDate() + 1); } var out = '总天数: ' + totalDays + '\n' + '工作日: ' + workDays + '\n' + '休息日: ' + restDays + '\n' + '占比: 工作 ' + (workDays / totalDays * 100).toFixed(1) + '% / 休息 ' + (restDays / totalDays * 100).toFixed(1) + '%'; showResult(out, '模式: ' + (pattern === 'double' ? '双休' : pattern === 'single' ? '单休' : pattern === 'size-big' ? '大小周' : '自定义') + ', ' + sStr + ' ~ ' + eStr); } catch (e) { showError('计算失败: ' + (e.message || e)); } } $('btn-main').addEventListener('click', function(e) { e.preventDefault(); doProcess(); }); $('btn-clear').addEventListener('click', function() { var inputs = document.querySelectorAll('input,textarea,select'); for (var i = 0; i < inputs.length; i++) { if (inputs[i].tagName === 'SELECT') inputs[i].selectedIndex = 0; else if (inputs[i].type === 'checkbox') inputs[i].checked = false; else inputs[i].value = inputs[i].defaultValue; } customGroup.style.display = 'none'; var ra = $('result-area'); ra.hidden = true; ra.style.display = 'none'; var em = $('error-msg'); em.hidden = true; em.style.display = 'none'; }); })();