{"id":15363,"date":"2026-06-30T14:15:15","date_gmt":"2026-06-30T05:15:15","guid":{"rendered":"https:\/\/rakkokeyword.com\/techo\/?p=15363"},"modified":"2026-06-30T14:15:16","modified_gmt":"2026-06-30T05:15:16","slug":"tool-business-days","status":"publish","type":"post","link":"https:\/\/rakkokeyword.com\/techo\/tool-business-days\/","title":{"rendered":"\u7a3c\u50cd\u65e5\u6570\uff08\u55b6\u696d\u65e5\uff09\u8a08\u7b97\u30c4\u30fc\u30eb"},"content":{"rendered":"\n<div id=\"bdc-container\" class=\"bdc-wrapper\">\n  <style>\n    \/* CSS: \u30c4\u30fc\u30eb\u5168\u4f53\u306e\u8a2d\u5b9a *\/\n    .bdc-wrapper {\n      font-family: \"Helvetica Neue\", Arial, \"Hiragino Kaku Gothic ProN\", \"Hiragino Sans\", Meiryo, sans-serif;\n      color: #333;\n      width: 100%;\n      box-sizing: border-box;\n      line-height: 1.6;\n      margin-bottom: 40px;\n    }\n    .bdc-wrapper * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0;\n    }\n    .bdc-row {\n      margin-bottom: 20px;\n    }\n    .bdc-label {\n      display: block;\n      font-weight: bold;\n      margin-bottom: 8px;\n      font-size: 15px;\n    }\n    .bdc-input-text, .bdc-select, .bdc-input-date {\n      width: 100%;\n      height: 44px;\n      padding: 0 12px;\n      border: 1px solid #ccc;\n      border-radius: 4px;\n      font-size: 16px;\n      background-color: #fff;\n      color: #333;\n      margin: 0 !important;\n      box-sizing: border-box;\n    }\n    \/* \u30ec\u30a4\u30a2\u30a6\u30c8\u8abf\u6574 *\/\n    .bdc-flex {\n      display: flex;\n      gap: 12px;\n      align-items: center;\n    }\n    .bdc-flex-1 {\n      flex: 1;\n    }\n    .bdc-unit-text {\n      white-space: nowrap;\n      font-size: 15px;\n      margin: 0;\n    }\n    .bdc-radio-group, .bdc-checkbox-group {\n      display: flex;\n      flex-direction: column;\n      gap: 10px;\n    }\n    .bdc-radio-group label, .bdc-checkbox-group label {\n      display: flex;\n      align-items: center;\n      gap: 6px;\n      cursor: pointer;\n      font-size: 15px;\n    }\n    @media (min-width: 600px) {\n      .bdc-radio-group {\n        flex-direction: row;\n        gap: 20px;\n      }\n    }\n    \/* \u30dc\u30bf\u30f3\u30c7\u30b6\u30a4\u30f3 *\/\n    .bdc-btn {\n      background-color: #13284B;\n      color: #fff;\n      border: none;\n      padding: 12px 32px;\n      font-size: 16px;\n      font-weight: bold;\n      border-radius: 4px;\n      cursor: pointer;\n      min-height: 44px;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 100%;\n      transition: background-color 0.2s;\n    }\n    @media (min-width: 600px) {\n      .bdc-btn {\n        width: auto;\n      }\n    }\n    .bdc-btn:hover {\n      background-color: #0b182e;\n    }\n    \/* \u7d50\u679c\u8868\u793a\u30a8\u30ea\u30a2 *\/\n    .bdc-result-box {\n      background-color: #f5f5f5;\n      padding: 24px;\n      margin-top: 28px;\n      border-radius: 6px;\n    }\n    .bdc-result-main {\n      font-size: 28px;\n      font-weight: bold;\n      color: #000;\n      margin-bottom: 12px;\n    }\n    .bdc-result-detail {\n      font-size: 15px;\n      color: #444;\n      margin-bottom: 8px;\n    }\n    .bdc-result-desc {\n      font-size: 14px;\n      color: #666;\n      margin-bottom: 16px;\n    }\n    .bdc-error {\n      color: #d32f2f;\n      font-size: 14px;\n      margin-top: 6px;\n    }\n    \/* \u30c8\u30fc\u30b9\u30c8\u901a\u77e5 *\/\n    .bdc-toast {\n      position: fixed;\n      bottom: 30px;\n      left: 50%;\n      transform: translateX(-50%);\n      background: rgba(0,0,0,0.8);\n      color: #fff;\n      padding: 12px 24px;\n      border-radius: 4px;\n      font-size: 14px;\n      opacity: 0;\n      visibility: hidden;\n      transition: opacity 0.3s, visibility 0.3s;\n      z-index: 9999;\n      pointer-events: none;\n    }\n    .bdc-toast.bdc-show {\n      opacity: 1;\n      visibility: visible;\n    }\n    .bdc-hidden {\n      display: none !important;\n    }\n  <\/style>\n  \n  <div class=\"bdc-row\">\n    <p class=\"bdc-label\">\u8a08\u7b97\u30e2\u30fc\u30c9<\/p>\n    <div class=\"bdc-radio-group\">\n      <label><input type=\"radio\" name=\"bdc-mode\" value=\"mode1\" checked> N\u55b6\u696d\u65e5\u5f8c\u30fb\u524d\u3092\u8a08\u7b97<\/label>\n      <label><input type=\"radio\" name=\"bdc-mode\" value=\"mode2\"> \u6307\u5b9a\u671f\u9593\u306e\u55b6\u696d\u65e5\u6570\u3092\u8a08\u7b97<\/label>\n    <\/div>\n  <\/div>\n\n  <div class=\"bdc-row\">\n    <p class=\"bdc-label\">\u57fa\u6e96\u65e5\uff08\u958b\u59cb\u65e5\uff09<\/p>\n    <input type=\"date\" id=\"bdc-start-date\" class=\"bdc-input-date\">\n  <\/div>\n\n  <div id=\"bdc-mode1-inputs\" class=\"bdc-row\">\n    <p class=\"bdc-label\">\u55b6\u696d\u65e5\u6570<\/p>\n    <div class=\"bdc-flex\">\n      <input type=\"number\" id=\"bdc-n-days\" class=\"bdc-input-text bdc-flex-1\" min=\"1\" max=\"10000\" value=\"1\">\n      <span class=\"bdc-unit-text\">\u55b6\u696d\u65e5<\/span>\n      <select id=\"bdc-n-direction\" class=\"bdc-select bdc-flex-1\">\n        <option value=\"after\">\u5f8c<\/option>\n        <option value=\"before\">\u524d<\/option>\n      <\/select>\n    <\/div>\n  <\/div>\n\n  <div id=\"bdc-mode2-inputs\" class=\"bdc-row bdc-hidden\">\n    <p class=\"bdc-label\">\u7d42\u4e86\u65e5<\/p>\n    <input type=\"date\" id=\"bdc-end-date\" class=\"bdc-input-date\">\n    <p id=\"bdc-end-date-error\" class=\"bdc-error bdc-hidden\">\u57fa\u6e96\u65e5\u3088\u308a\u5f8c\u306e\u65e5\u4ed8\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n  <\/div>\n\n  <div class=\"bdc-row\">\n    <p class=\"bdc-label\">\u4f11\u65e5\u30fb\u795d\u65e5\u30eb\u30fc\u30eb<\/p>\n    <div class=\"bdc-checkbox-group\">\n      <label><input type=\"checkbox\" id=\"bdc-rule-weekend\" checked> \u571f\u65e5\u3092\u4f11\u65e5\u3068\u3059\u308b<\/label>\n      <label><input type=\"checkbox\" id=\"bdc-rule-holiday\" checked> \u65e5\u672c\u306e\u795d\u65e5\u3092\u4f11\u65e5\u3068\u3059\u308b<\/label>\n      <label><input type=\"checkbox\" id=\"bdc-rule-newyear\" checked> \u5e74\u672b\u5e74\u59cb\uff0812\/29\uff5e1\/3\uff09\u3092\u4f11\u65e5\u3068\u3059\u308b<\/label>\n      <label><input type=\"checkbox\" id=\"bdc-rule-firstday\"> \u521d\u65e5\uff08\u57fa\u6e96\u65e5\uff09\u3092\u55b6\u696d\u65e51\u65e5\u76ee\u3068\u3057\u3066\u6570\u3048\u308b<\/label>\n    <\/div>\n    <p id=\"bdc-holiday-error\" class=\"bdc-error bdc-hidden\" style=\"margin-top: 10px;\">\u203b\u795d\u65e5\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3067\u304d\u306a\u304b\u3063\u305f\u305f\u3081\u3001\u65e5\u672c\u306e\u795d\u65e5\u306f\u9664\u5916\u305b\u305a\u306b\u8a08\u7b97\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n  <\/div>\n\n  <div class=\"bdc-result-box\">\n    <p class=\"bdc-label\">\u8a08\u7b97\u7d50\u679c<\/p>\n    <p id=\"bdc-result-main\" class=\"bdc-result-main\">\u2013<\/p>\n    <p id=\"bdc-result-detail\" class=\"bdc-result-detail\"><\/p>\n    <p id=\"bdc-result-desc\" class=\"bdc-result-desc\"><\/p>\n    <div>\n      <button type=\"button\" id=\"bdc-copy-btn\" class=\"bdc-btn\">\u7d50\u679c\u3092\u30b3\u30d4\u30fc<\/button>\n    <\/div>\n  <\/div>\n\n  <div id=\"bdc-toast\" class=\"bdc-toast\">\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f<\/div>\n\n  <script>\n    (function() {\n      \/\/ \u5909\u6570\u5b9a\u7fa9\n      let bdcHolidays = {};\n      let bdcIsHolidaysLoaded = false;\n\n      \/\/ \u795d\u65e5\u30c7\u30fc\u30bf\u306e\u53d6\u5f97 (\u30b3\u30f3\u30bd\u30fc\u30eb\u30a8\u30e9\u30fc\u306f\u63e1\u308a\u3064\u3076\u3059)\n      async function bdcLoadHolidays() {\n        try {\n          const res = await fetch('https:\/\/holidays-jp.github.io\/api\/v1\/date.json');\n          if (res.ok) {\n            const rawData = await res.json();\n            \/\/ \u53d6\u5f97\u3057\u305f\u30c7\u30fc\u30bf\u304c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\n            if (rawData && typeof rawData === 'object' && !Array.isArray(rawData)) {\n              const dateRegex = \/^\\d{4}-\\d{2}-\\d{2}$\/;\n              for (const key in rawData) {\n                if (Object.prototype.hasOwnProperty.call(rawData, key)) {\n                  \/\/ \u30ad\u30fc\u304c YYYY-MM-DD \u5f62\u5f0f\u306e\u5834\u5408\u306e\u307f\u767b\u9332\n                  if (dateRegex.test(key)) {\n                    \/\/ \u5024\u306f\u5b9f\u884c\u3055\u305b\u305a\u5358\u306a\u308b\u6587\u5b57\u5217\u3068\u3057\u3066\u4fdd\u6301\n                    bdcHolidays[key] = String(rawData[key]);\n                  }\n                }\n              }\n              bdcIsHolidaysLoaded = true;\n              bdcCalculate();\n            } else {\n              throw new Error('Invalid Data Format');\n            }\n          } else {\n            throw new Error('API Error');\n          }\n        } catch (e) {\n          \/\/ \u5931\u6557\u6642\u306f\u30b3\u30f3\u30bd\u30fc\u30eb\u51fa\u529b\u305b\u305a\u7121\u8996\uff08\u795d\u65e5\u5224\u5b9a\u304c\u30b9\u30eb\u30fc\u3055\u308c\u308b\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\uff09\n          document.getElementById('bdc-holiday-error').classList.remove('bdc-hidden');\n          bdcCalculate();\n        }\n      }\n\n      \/\/ XSS\u5bfe\u7b56\u7528 HTML\u30a8\u30b9\u30b1\u30fc\u30d7\u51e6\u7406 (textContent\u4e3b\u4f53\u306e\u305f\u3081\u57fa\u672c\u5b89\u5168\u3060\u304c\u5ff5\u306e\u305f\u3081)\n      function bdcEscapeHtml(str) {\n        if (typeof str !== 'string') return str;\n        return str.replace(\/[&'`\"<>]\/g, function(match) {\n          switch (match) {\n            case '&': return '&' + 'amp;';\n            case \"'\": return '&' + '#x27;';\n            case '`': return '&' + '#x60;';\n            case '\"': return '&' + 'quot;';\n            case '<': return '&#038;' + 'lt;';\n            case '>': return '&' + 'gt;';\n            default: return match;\n          }\n        });\n      }\n\n      \/\/ \u8a08\u7b97\u7d50\u679c\u3092DOM\u306b\u53cd\u6620\n      function bdcShowResult(main, detail, desc) {\n        document.getElementById('bdc-result-main').textContent = bdcEscapeHtml(main);\n        document.getElementById('bdc-result-detail').textContent = bdcEscapeHtml(detail);\n        document.getElementById('bdc-result-desc').textContent = bdcEscapeHtml(desc);\n      }\n\n      \/\/ \u4f11\u65e5\u5224\u5b9a\u30ed\u30b8\u30c3\u30af\n      function bdcIsDayOff(dateObj, rules) {\n        \/\/ \u571f\u65e5\u5224\u5b9a\n        if (rules.weekend) {\n          const day = dateObj.getDay();\n          if (day === 0 || day === 6) return true;\n        }\n        \/\/ \u795d\u65e5\u5224\u5b9a\n        if (rules.holiday && bdcIsHolidaysLoaded) {\n          const y = dateObj.getFullYear();\n          const m = String(dateObj.getMonth() + 1).padStart(2, '0');\n          const d = String(dateObj.getDate()).padStart(2, '0');\n          const ymd = y + '-' + m + '-' + d;\n          if (bdcHolidays[ymd]) return true;\n        }\n        \/\/ \u5e74\u672b\u5e74\u59cb\u5224\u5b9a\n        if (rules.newyear) {\n          const m = dateObj.getMonth() + 1;\n          const d = dateObj.getDate();\n          if ((m === 12 && d >= 29) || (m === 1 && d <= 3)) return true;\n        }\n        return false;\n      }\n\n      \/\/ \u65e5\u4ed8\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\uff08\u3007\u6708\u3007\u65e5\uff09\n      function bdcGetDateStr(dateObj) {\n        return (dateObj.getMonth() + 1) + '\u6708' + dateObj.getDate() + '\u65e5';\n      }\n\n      \/\/ \u30e1\u30a4\u30f3\u8a08\u7b97\u51e6\u7406\n      function bdcCalculate() {\n        const mode = document.querySelector('input[name=\"bdc-mode\"]:checked').value;\n        const startDateStr = document.getElementById('bdc-start-date').value;\n        \n        const rules = {\n          weekend: document.getElementById('bdc-rule-weekend').checked,\n          holiday: document.getElementById('bdc-rule-holiday').checked,\n          newyear: document.getElementById('bdc-rule-newyear').checked,\n          firstday: document.getElementById('bdc-rule-firstday').checked\n        };\n\n        const errorElem = document.getElementById('bdc-end-date-error');\n        errorElem.classList.add('bdc-hidden');\n\n        if (!startDateStr) {\n          bdcShowResult('-', '', '');\n          return;\n        }\n\n        const startDate = new Date(startDateStr);\n        if (isNaN(startDate.getTime())) return;\n\n        let descText = '';\n\n        if (mode === 'mode1') {\n          \/\/ \u30e2\u30fc\u30c91: N\u55b6\u696d\u65e5\u5f8c\u30fb\u524d\u3092\u8a08\u7b97\n          const nDaysVal = document.getElementById('bdc-n-days').value;\n          let nDays = parseInt(nDaysVal, 10);\n          if (isNaN(nDays) || nDays < 1 || nDays > 10000) {\n            bdcShowResult('\u55b6\u696d\u65e5\u6570\u306f1\u4ee5\u4e0a10000\u4ee5\u4e0b\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044', '', '');\n            return;\n          }\n          const direction = document.getElementById('bdc-n-direction').value;\n          const step = direction === 'after' ? 1 : -1;\n\n          let currentDate = new Date(startDate.getTime());\n          let count = 0;\n\n          \/\/ \u521d\u65e5\u3092\u542b\u3081\u306a\u3044\u5834\u5408\u306f\u57fa\u6e96\u65e5\u306e\u7fcc\u65e5(\u307e\u305f\u306f\u524d\u65e5)\u304b\u3089\u30b9\u30bf\u30fc\u30c8\n          if (!rules.firstday) {\n            currentDate.setDate(currentDate.getDate() + step);\n          }\n\n          while (true) {\n            if (!bdcIsDayOff(currentDate, rules)) {\n              count++;\n            }\n            if (count === nDays) break;\n            currentDate.setDate(currentDate.getDate() + step);\n          }\n\n          \/\/ \u5185\u8a33\u306e\u518d\u8a08\u7b97\u7528\n          let actualStart = new Date(startDate.getTime());\n          if (!rules.firstday) {\n            actualStart.setDate(actualStart.getDate() + step);\n          }\n          let minDate = new Date(Math.min(actualStart.getTime(), currentDate.getTime()));\n          let maxDate = new Date(Math.max(actualStart.getTime(), currentDate.getTime()));\n          \n          let calcTotal = 0, calcBiz = 0, calcHol = 0;\n          let loopDate = new Date(minDate.getTime());\n          \n          while (loopDate <= maxDate) {\n            calcTotal++;\n            if (bdcIsDayOff(loopDate, rules)) {\n              calcHol++;\n            } else {\n              calcBiz++;\n            }\n            loopDate.setDate(loopDate.getDate() + 1);\n          }\n\n          const y = currentDate.getFullYear();\n          const m = currentDate.getMonth() + 1;\n          const d = currentDate.getDate();\n          const dayStr = ['\u65e5', '\u6708', '\u706b', '\u6c34', '\u6728', '\u91d1', '\u571f'][currentDate.getDay()];\n          const mainText = `${y}\u5e74${m}\u6708${d}\u65e5\uff08${dayStr}\uff09`;\n          \n          const detailText = `\u7dcf\u65e5\u6570: ${calcTotal}\u65e5 \/ \u55b6\u696d\u65e5\u6570: ${calcBiz}\u65e5 \/ \u4f11\u65e5\u6570: ${calcHol}\u65e5`;\n          \n          const nextOrPrev = direction === 'after' ? '\u7fcc' : '\u524d';\n          descText = rules.firstday \n            ? `\u203b${bdcGetDateStr(startDate)}\u30921\u55b6\u696d\u65e5\u76ee\u3068\u3057\u3066\u6570\u3048\u307e\u3057\u305f\u3002` \n            : `\u203b${bdcGetDateStr(startDate)}\u306e${nextOrPrev}\u55b6\u696d\u65e5\u304b\u30891\u55b6\u696d\u65e5\u76ee\u3068\u3057\u3066\u6570\u3048\u307e\u3057\u305f\u3002`;\n\n          bdcShowResult(mainText, detailText, descText);\n\n        } else {\n          \/\/ \u30e2\u30fc\u30c92: \u6307\u5b9a\u671f\u9593\u306e\u55b6\u696d\u65e5\u6570\u3092\u8a08\u7b97\n          const endDateStr = document.getElementById('bdc-end-date').value;\n          if (!endDateStr) {\n            bdcShowResult('-', '', '');\n            return;\n          }\n          const endDate = new Date(endDateStr);\n          if (isNaN(endDate.getTime())) return;\n\n          if (endDate < startDate) {\n            errorElem.classList.remove('bdc-hidden');\n            bdcShowResult('-', '', '');\n            return;\n          }\n\n          let actualStart = new Date(startDate.getTime());\n          if (!rules.firstday) {\n            actualStart.setDate(actualStart.getDate() + 1);\n          }\n\n          descText = rules.firstday \n            ? `\u203b${bdcGetDateStr(startDate)}\u3092\u671f\u9593\u306b\u542b\u3081\u3066\u3044\u307e\u3059\u3002` \n            : `\u203b${bdcGetDateStr(startDate)}\u306e\u7fcc\u65e5\u304b\u3089\u671f\u9593\u306b\u542b\u3081\u3066\u3044\u307e\u3059\u3002`;\n\n          if (actualStart > endDate) {\n            bdcShowResult('0\u55b6\u696d\u65e5', `\u5bfe\u8c61\u671f\u9593\u306e\u7dcf\u65e5\u6570: 0\u65e5 \/ \u55b6\u696d\u65e5\u6570: 0\u65e5 \/ \u4f11\u65e5\u6570: 0\u65e5`, descText);\n            return;\n          }\n\n          let calcTotal = 0, calcBiz = 0, calcHol = 0;\n          let loopDate = new Date(actualStart.getTime());\n          \n          while (loopDate <= endDate) {\n            calcTotal++;\n            if (bdcIsDayOff(loopDate, rules)) {\n              calcHol++;\n            } else {\n              calcBiz++;\n            }\n            loopDate.setDate(loopDate.getDate() + 1);\n          }\n\n          const mainText = `${calcBiz}\u55b6\u696d\u65e5`;\n          const detailText = `\u5bfe\u8c61\u671f\u9593\u306e\u7dcf\u65e5\u6570: ${calcTotal}\u65e5 \/ \u55b6\u696d\u65e5\u6570: ${calcBiz}\u65e5 \/ \u4f11\u65e5\u6570: ${calcHol}\u65e5`;\n\n          bdcShowResult(mainText, detailText, descText);\n        }\n      }\n\n      \/\/ \u521d\u671f\u5316\u51e6\u7406\n      document.addEventListener('DOMContentLoaded', () => {\n        \/\/ \u57fa\u6e96\u65e5\u5909\u66f4\u6642\u306e\u7d42\u4e86\u65e5\u81ea\u52d5\u88dc\u6b63\n        document.getElementById('bdc-start-date').addEventListener('change', (e) => {\n          const startDateStr = e.target.value;\n          const endDateInput = document.getElementById('bdc-end-date');\n          const endDateStr = endDateInput.value;\n          \n          if (startDateStr && endDateStr) {\n            const startDate = new Date(startDateStr);\n            const endDate = new Date(endDateStr);\n            if (endDate < startDate) {\n              endDateInput.value = startDateStr;\n            }\n          }\n        });\n\n        const inputs = document.querySelectorAll('#bdc-container input, #bdc-container select');\n        inputs.forEach(input => {\n          input.addEventListener('change', bdcCalculate);\n          if(input.type === 'number') {\n            input.addEventListener('input', bdcCalculate);\n          }\n        });\n\n        const radios = document.querySelectorAll('input[name=\"bdc-mode\"]');\n        radios.forEach(radio => {\n          radio.addEventListener('change', (e) => {\n            if (e.target.value === 'mode1') {\n              document.getElementById('bdc-mode1-inputs').classList.remove('bdc-hidden');\n              document.getElementById('bdc-mode2-inputs').classList.add('bdc-hidden');\n            } else {\n              document.getElementById('bdc-mode1-inputs').classList.add('bdc-hidden');\n              document.getElementById('bdc-mode2-inputs').classList.remove('bdc-hidden');\n            }\n            bdcCalculate();\n          });\n        });\n\n        \/\/ \u57fa\u6e96\u65e5\u3068\u7d42\u4e86\u65e5\u306e\u521d\u671f\u5024\u3092\u4eca\u65e5\u306b\u8a2d\u5b9a\n        const today = new Date();\n        const y = today.getFullYear();\n        const m = String(today.getMonth() + 1).padStart(2, '0');\n        const d = String(today.getDate()).padStart(2, '0');\n        const todayStr = `${y}-${m}-${d}`;\n        document.getElementById('bdc-start-date').value = todayStr;\n        document.getElementById('bdc-end-date').value = todayStr;\n        \n        \/\/ \u795d\u65e5\u306e\u8aad\u307f\u8fbc\u307f\u3068\u521d\u671f\u8a08\u7b97\n        bdcLoadHolidays();\n\n        \/\/ \u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u3078\u306e\u30b3\u30d4\u30fc\u6a5f\u80fd\n        document.getElementById('bdc-copy-btn').addEventListener('click', () => {\n          const mainText = document.getElementById('bdc-result-main').textContent;\n          if (mainText && mainText !== '-') {\n            const showToast = () => {\n              const toast = document.getElementById('bdc-toast');\n              toast.classList.add('bdc-show');\n              setTimeout(() => {\n                toast.classList.remove('bdc-show');\n              }, 2500);\n            };\n\n            if (navigator.clipboard) {\n              navigator.clipboard.writeText(mainText)\n                .then(showToast)\n                .catch(() => execCopyFallback(mainText, showToast));\n            } else {\n              execCopyFallback(mainText, showToast);\n            }\n          }\n        });\n\n        \/\/ \u30b3\u30d4\u30fc\u306e\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\n        function execCopyFallback(text, successCallback) {\n          const textarea = document.createElement('textarea');\n          textarea.value = text;\n          \/\/ \u753b\u9762\u5916\u306b\u914d\u7f6e\n          textarea.style.position = 'fixed';\n          textarea.style.left = '-9999px';\n          document.body.appendChild(textarea);\n          textarea.select();\n          try {\n            document.execCommand('copy');\n            successCallback();\n          } catch(e) {\n            \/\/ \u30a8\u30e9\u30fc\u63e1\u308a\u3064\u3076\u3057\n          }\n          document.body.removeChild(textarea);\n        }\n      });\n    })();\n  <\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u57fa\u6e96\u65e5\u3068\u306a\u308b\u65e5\u4ed8\u304b\u3089\u300c\u3007\u55b6\u696d\u65e5\u5f8c\uff08\u307e\u305f\u306f\u524d\uff09\u300d\u304c\u3044\u3064\u306b\u306a\u308b\u304b\u3001\u3042\u308b\u3044\u306f\u6307\u5b9a\u3057\u305f\u671f\u9593\u5185\u306b\u300c\u55b6\u696d\u65e5\u6570\uff08\u7a3c\u50cd\u65e5\uff09\u300d\u304c\u4f55\u65e5\u3042\u308b\u304b\u3092\u77ac\u6642\u306b\u7b97\u51fa\u3067\u304d\u308b\u7121\u6599\u306e\u8a08\u7b97\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-0\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u3067\u304d\u308b\u3053\u3068<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001\u4e3b\u306b\u4ee5\u4e0b\u306e2\u3064\u306e\u8a08\u7b97\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>N\u55b6\u696d\u65e5\u5f8c\u30fb\u524d\u3092\u8a08\u7b97<\/strong> <br>\u57fa\u6e96\u65e5\u306b\u5bfe\u3057\u3066\u3001\u6307\u5b9a\u3057\u305f\u55b6\u696d\u65e5\u6570\u304c\u7d4c\u904e\u3057\u305f\u5f8c\u306e\u65e5\u4ed8\u3001\u307e\u305f\u306f\u9061\u3063\u305f\u524d\u306e\u65e5\u4ed8\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u6307\u5b9a\u671f\u9593\u306e\u55b6\u696d\u65e5\u6570\u3092\u8a08\u7b97<\/strong> <br>\u958b\u59cb\u65e5\uff08\u57fa\u6e96\u65e5\uff09\u3068\u7d42\u4e86\u65e5\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u305d\u306e\u671f\u9593\u5185\u306b\u55b6\u696d\u65e5\uff08\u7a3c\u50cd\u65e5\uff09\u304c\u4f55\u65e5\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305f\u3001\u30d3\u30b8\u30cd\u30b9\u306e\u73fe\u5834\u306b\u5408\u308f\u305b\u3066\u4f11\u65e5\u30eb\u30fc\u30eb\u3092\u67d4\u8edf\u306b\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002\u571f\u65e5\u3001\u65e5\u672c\u306e\u795d\u65e5\u3001\u5e74\u672b\u5e74\u59cb\uff0812\u670829\u65e5\uff5e1\u67083\u65e5\uff09\u3092\u4f11\u65e5\u3068\u3057\u3066\u6271\u3046\u304b\u306e\u30aa\u30f3\u30fb\u30aa\u30d5\u304c\u53ef\u80fd\u306a\u307b\u304b\u3001\u300c\u521d\u65e5\u3092\u55b6\u696d\u65e51\u65e5\u76ee\u3068\u3057\u3066\u6570\u3048\u308b\u304b\uff08\u521d\u65e5\u7b97\u5165\uff09\u300d\u306e\u8a2d\u5b9a\u3082\u30dc\u30bf\u30f3\u4e00\u3064\u3067\u5207\u308a\u66ff\u3048\u3089\u308c\u307e\u3059\u3002\u8a08\u7b97\u7d50\u679c\u306f\u30ef\u30f3\u30af\u30ea\u30c3\u30af\u3067\u30b3\u30d4\u30fc\u3067\u304d\u3001\u305d\u306e\u307e\u307e\u30e1\u30fc\u30eb\u3084\u30c1\u30e3\u30c3\u30c8\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">\u30c4\u30fc\u30eb\u306e\u4f7f\u3044\u65b9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u3044\u65b9\u306f\u975e\u5e38\u306b\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002\u7528\u9014\u306b\u5408\u308f\u305b\u3066\u4ee5\u4e0b\u306e\u624b\u9806\u3067\u64cd\u4f5c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u8a08\u7b97\u30e2\u30fc\u30c9\u3092\u9078\u629e<\/strong> <br>\u76ee\u7684\u306b\u5fdc\u3058\u3066\u300cN\u55b6\u696d\u65e5\u5f8c\u30fb\u524d\u3092\u8a08\u7b97\u300d\u304b\u300c\u6307\u5b9a\u671f\u9593\u306e\u55b6\u696d\u65e5\u6570\u3092\u8a08\u7b97\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u57fa\u6e96\u65e5\uff08\u958b\u59cb\u65e5\uff09\u3092\u8a2d\u5b9a<\/strong> <br>\u30ab\u30ec\u30f3\u30c0\u30fc\u304b\u3089\u57fa\u6e96\u3068\u306a\u308b\u65e5\u4ed8\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u65e5\u6570\u307e\u305f\u306f\u7d42\u4e86\u65e5\u3092\u8a2d\u5b9a<\/strong> <br>\u30e2\u30fc\u30c9\u306b\u5fdc\u3058\u3066\u3001\u8a08\u7b97\u3057\u305f\u3044\u300c\u55b6\u696d\u65e5\u6570\uff08\u3068\u524d\u5f8c\uff09\u300d\u3001\u307e\u305f\u306f\u300c\u7d42\u4e86\u65e5\u300d\u3092\u5165\u529b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u4f11\u65e5\u30fb\u795d\u65e5\u30eb\u30fc\u30eb\u3092\u8a2d\u5b9a<\/strong> <br>\u81ea\u793e\u306e\u5c31\u696d\u898f\u5247\u3084\u53d6\u5f15\u5148\u306e\u4f11\u65e5\u306b\u5408\u308f\u305b\u3066\u3001\u571f\u65e5\u3001\u795d\u65e5\u3001\u5e74\u672b\u5e74\u59cb\u306e\u6271\u3044\u3001\u304a\u3088\u3073\u521d\u65e5\u306e\u30ab\u30a6\u30f3\u30c8\u65b9\u6cd5\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u7d50\u679c\u306e\u78ba\u8a8d\u3068\u30b3\u30d4\u30fc<\/strong> <br>\u753b\u9762\u4e0b\u90e8\u306b\u8a08\u7b97\u7d50\u679c\u3068\u5185\u8a33\u304c\u81ea\u52d5\u3067\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u7d50\u679c\u3092\u30b3\u30d4\u30fc\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u3054\u6d3b\u7528\u304f\u3060\u3055\u3044\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">\u55b6\u696d\u65e5\u8a08\u7b97\u306b\u95a2\u3059\u308b\u57fa\u790e\u77e5\u8b58<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u55b6\u696d\u65e5\u3092\u6b63\u3057\u304f\u8a08\u7b97\u30fb\u628a\u63e1\u3059\u308b\u305f\u3081\u306b\u77e5\u3063\u3066\u304a\u304d\u305f\u3044\u57fa\u790e\u77e5\u8b58\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u300c\u55b6\u696d\u65e5\u300d\u3068\u306f<\/strong> <br>\u4f01\u696d\u3084\u5e97\u8217\u304c\u901a\u5e38\u306e\u696d\u52d9\u3092\u884c\u3063\u3066\u3044\u308b\u65e5\u306e\u3053\u3068\u3067\u3059\u3002\u4e00\u822c\u7684\u306b\u3001\u571f\u65e5\u30fb\u795d\u65e5\u30fb\u5e74\u672b\u5e74\u59cb\u306a\u3069\u3092\u9664\u3044\u305f\u5e73\u65e5\u3092\u6307\u3059\u3053\u3068\u304c\u591a\u3044\u3067\u3059\u304c\u3001\u696d\u754c\u3084\u4f01\u696d\u306b\u3088\u3063\u3066\u5b9a\u7fa9\u304c\u7570\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u521d\u65e5\u7b97\u5165\u3068\u521d\u65e5\u4e0d\u7b97\u5165<\/strong> <br>\u6cd5\u5f8b\uff08\u6c11\u6cd5\uff09\u306e\u539f\u5247\u3067\u306f\u3001\u671f\u9593\u3092\u8a08\u7b97\u3059\u308b\u969b\u3001\u305d\u306e\u521d\u65e5\u306f\u7b97\u5165\u3057\u306a\u3044\u300c\u521d\u65e5\u4e0d\u7b97\u5165\u306e\u539f\u5247\u300d\u304c\u3042\u308a\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u300c\u672c\u65e5\u304b\u30893\u55b6\u696d\u65e5\u5f8c\u300d\u3068\u3044\u3046\u5834\u5408\u3001\u672c\u65e5\u306f\u30ce\u30fc\u30ab\u30a6\u30f3\u30c8\u3068\u3057\u3001\u7fcc\u55b6\u696d\u65e5\u304b\u3089\u300c1\u55b6\u696d\u65e5\u76ee\u300d\u3068\u6570\u3048\u59cb\u3081\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u5951\u7d04\u66f8\u306a\u3069\u3067\u300c\u5f53\u65e5\u304b\u3089\u8d77\u7b97\u3059\u308b\u300d\u3068\u3044\u3046\u53d6\u308a\u6c7a\u3081\u304c\u3042\u308b\u5834\u5408\u306f\u300c\u521d\u65e5\u7b97\u5165\u300d\u3068\u306a\u308a\u307e\u3059\u3002\u5f53\u30c4\u30fc\u30eb\u3067\u306f\u3001\u3053\u306e\u9055\u3044\u306b\u3088\u308b\u30ba\u30ec\u3092\u9632\u3050\u305f\u3081\u3001\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3067\u521d\u65e5\u306e\u6271\u3044\u3092\u9078\u629e\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-3\">\u3053\u306e\u30c4\u30fc\u30eb\u304c\u5f79\u7acb\u3064\u306e\u306f\u3069\u3093\u306a\u3068\u304d\uff1f\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3092\u7d39\u4ecb<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30d3\u30b8\u30cd\u30b9\u306e\u69d8\u3005\u306a\u5834\u9762\u3067\u3001\u6b63\u78ba\u306a\u65e5\u4ed8\u306e\u628a\u63e1\u3084\u30b9\u30b1\u30b8\u30e5\u30fc\u30ea\u30f3\u30b0\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u7d0d\u671f\u3084\u7d0d\u54c1\u65e5\u306e\u8a2d\u5b9a<\/strong> <br>\u300c\u53d7\u6ce8\u65e5\u304b\u30895\u55b6\u696d\u65e5\u5f8c\u306b\u767a\u9001\u3059\u308b\u300d\u300c\u3007\u55b6\u696d\u65e5\u4ee5\u5185\u306b\u7d0d\u54c1\u3059\u308b\u300d\u3068\u3044\u3063\u305f\u5834\u5408\u3001\u571f\u65e5\u795d\u65e5\u3092\u6b63\u78ba\u306b\u9664\u5916\u3057\u305f\u7d0d\u54c1\u65e5\u3092\u7d20\u65e9\u304f\u7b97\u51fa\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u652f\u6255\u3044\u671f\u65e5\u306e\u9006\u7b97<\/strong> <br>\u300c\u652f\u6255\u671f\u65e5\u306e3\u55b6\u696d\u65e5\u524d\u307e\u3067\u306b\u8acb\u6c42\u66f8\u3092\u767a\u884c\u3059\u308b\u300d\u306a\u3069\u3001\u671f\u9650\u304b\u3089\u9006\u7b97\u3057\u3066\u30bf\u30b9\u30af\u306e\u7de0\u3081\u5207\u308a\u65e5\u3092\u6c7a\u5b9a\u3059\u308b\u969b\u306b\u4fbf\u5229\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u7a3c\u50cd\u65e5\u6570\u306b\u57fa\u3065\u304f\u7d66\u4e0e\u3084\u5de5\u6570\u306e\u8a08\u7b97<\/strong> <br>\u300c\u4eca\u6708\u306e15\u65e5\u304b\u3089\u6708\u672b\u307e\u3067\u306e\u9593\u306b\u3001\u5b9f\u7a3c\u50cd\u65e5\u304c\u4f55\u65e5\u3042\u308b\u304b\u300d\u3092\u628a\u63e1\u3057\u305f\u3044\u5834\u5408\u3001\u6307\u5b9a\u671f\u9593\u306e\u55b6\u696d\u65e5\u6570\u3092\u8a08\u7b97\u3059\u308b\u6a5f\u80fd\u304c\u5f79\u7acb\u3061\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">\u3088\u304f\u3042\u308b\u8cea\u554f<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u795d\u65e5\u306f\u3069\u306e\u3088\u3046\u306b\u5224\u5b9a\u3057\u3066\u3044\u307e\u3059\u304b\uff1f<\/strong> <br>\u5185\u95a3\u5e9c\u304c\u516c\u8868\u3057\u3066\u3044\u308b\u6700\u65b0\u306e\u300c\u56fd\u6c11\u306e\u795d\u65e5\u300d\u30c7\u30fc\u30bf\uff08API\uff09\u3092\u81ea\u52d5\u3067\u53d6\u5f97\u3057\u3001\u5224\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u632f\u66ff\u4f11\u65e5\u306a\u3069\u306b\u3082\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u5e74\u672b\u5e74\u59cb\u306e\u671f\u9593\u306f\u5909\u66f4\u3067\u304d\u307e\u3059\u304b\uff1f<\/strong> <br>\u5f53\u30c4\u30fc\u30eb\u3067\u306f\u3001\u4e00\u822c\u7684\u306a\u4f01\u696d\u306e\u4f11\u696d\u65e5\u3068\u3057\u3066\u300c12\u670829\u65e5\uff5e1\u67083\u65e5\u300d\u3092\u56fa\u5b9a\u306e\u5e74\u672b\u5e74\u59cb\u4f11\u6687\u3068\u3057\u3066\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u671f\u9593\u306e\u4efb\u610f\u5909\u66f4\u306f\u3067\u304d\u307e\u305b\u3093\u306e\u3067\u3001\u7279\u6b8a\u306a\u4f11\u696d\u671f\u9593\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u7d50\u679c\u306e\u5185\u8a33\u65e5\u6570\u3092\u53c2\u8003\u306b\u624b\u52d5\u3067\u8abf\u6574\u3092\u304a\u9858\u3044\u3044\u305f\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u8a08\u7b97\u30e2\u30fc\u30c9 N\u55b6\u696d\u65e5\u5f8c\u30fb\u524d\u3092\u8a08\u7b97 \u6307\u5b9a\u671f\u9593\u306e\u55b6\u696d\u65e5\u6570\u3092\u8a08\u7b97 \u57fa\u6e96\u65e5\uff08\u958b\u59cb\u65e5\uff09 \u55b6\u696d\u65e5\u6570 \u55b6\u696d\u65e5 \u5f8c\u524d \u7d42\u4e86\u65e5 \u57fa\u6e96\u65e5\u3088\u308a\u5f8c\u306e\u65e5\u4ed8\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u4f11\u65e5\u30fb\u795d\u65e5\u30eb\u30fc\u30eb \u571f\u65e5\u3092\u4f11\u65e5\u3068\u3059\u308b \u65e5\u672c\u306e\u795d\u65e5\u3092\u4f11\u65e5\u3068\u3059\u308b \u5e74\u672b\u5e74\u59cb\uff08 &#8230; <\/p>\n","protected":false},"author":4,"featured_media":15382,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,40],"tags":[],"class_list":["post-15363","post","type-post","status-publish","format-standard","has-post-thumbnail","category-tool","category-40","entry"],"_links":{"self":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/15363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/comments?post=15363"}],"version-history":[{"count":12,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/15363\/revisions"}],"predecessor-version":[{"id":15381,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/15363\/revisions\/15381"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/media\/15382"}],"wp:attachment":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/media?parent=15363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/categories?post=15363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/tags?post=15363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}