{"id":1927,"date":"2024-06-22T16:11:17","date_gmt":"2024-06-22T19:11:17","guid":{"rendered":"https:\/\/matematicasaomiguel.com.br\/?page_id=1927"},"modified":"2026-02-21T23:24:40","modified_gmt":"2026-02-22T02:24:40","slug":"horario-escolar","status":"publish","type":"page","link":"https:\/\/matematicasaomiguel.com.br\/?page_id=1927","title":{"rendered":"Hor\u00e1rio Escolar"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1927\" class=\"elementor elementor-1927\">\n\t\t\t\t<div class=\"elementor-element elementor-element-da2b834 e-flex e-con-boxed e-con e-parent\" data-id=\"da2b834\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6aab47e elementor-widget__width-inherit e-transform e-transform elementor-widget elementor-widget-html\" data-id=\"6aab47e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_translateX_effect_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:27,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;_transform_scale_effect_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_mobile_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_mobile_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_scale_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_scale_effect_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_scale_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_scale_effect_mobile_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_scale_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-BR\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Hor\u00e1rio Escolar<\/title>\r\n\r\n    <style>\r\n        body { font-family: Arial, sans-serif; text-align: center; margin: 0; padding: 8px; }\r\n        h3 { margin: 8px 0; font-size: 16px; }\r\n        table { width: 100%; max-width: 1000px; margin: 0 auto; border-collapse: collapse; table-layout: fixed; }\r\n        th, td { border: 1px solid #555; font-size: 10px; padding: 5px; text-align: center; vertical-align: middle; }\r\n        th { background: #e0e0e0; font-size: 11px; }\r\n        .day-cell { writing-mode: vertical-rl; transform: rotate(180deg); background: #cfcfcf; font-weight: bold; width: 20px; }\r\n        .end-day td { border-bottom: 3px solid black; }\r\n        select { width: 100%; border: none; font-size: 10px; padding: 2px; background: transparent; cursor: pointer; }\r\n        \r\n        .btn-container { margin: 15px 0; }\r\n        button { padding: 10px 25px; font-size: 14px; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; margin: 0 5px; }\r\n        .btn-pdf { background: #28a745; }\r\n        .btn-pdf:hover { background: #218838; }\r\n        .btn-clear { background: #dc3545; }\r\n        .btn-clear:hover { background: #c82333; }\r\n\r\n        @media print { .btn-container { display: none; } }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<h3>HOR\u00c1RIO ESCOLAR<\/h3>\r\n\r\n<table id=\"timetable\">\r\n    <thead>\r\n        <tr>\r\n            <th style=\"width:30px;\">Dia<\/th>\r\n            <th style=\"width:80px;\">Hor\u00e1rio<\/th>\r\n            <th>1\u00ba A<\/th> <th>1\u00ba B<\/th> <th>1\u00ba C<\/th>\r\n            <th>2\u00ba A<\/th> <th>2\u00ba B<\/th> <th>2\u00ba C<\/th>\r\n            <th>3\u00ba A<\/th> <th>3\u00ba B<\/th>\r\n        <\/tr>\r\n    <\/thead>\r\n    <tbody><\/tbody>\r\n<\/table>\r\n\r\n<div class=\"btn-container\">\r\n    <button class=\"btn-pdf\" onclick=\"downloadPDF()\">Baixar PDF<\/button>\r\n    <button class=\"btn-clear\" onclick=\"clearTable()\">Limpar Tabela<\/button>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf-autotable\/3.8.2\/jspdf.plugin.autotable.min.js\"><\/script>\r\n\r\n<script>\r\nconst periods = [\"07:00-08:00\", \"08:00-09:00\", \"09:10-10:10\", \"10:10-11:10\", \"11:10-12:10\"];\r\nconst days = [\"Segunda\", \"Ter\u00e7a\", \"Quarta\", \"Quinta\", \"Sexta\"];\r\nconst classes = [\"1\u00ba A\", \"1\u00ba B\", \"1\u00ba C\", \"2\u00ba A\", \"2\u00ba B\", \"2\u00ba C\", \"3\u00ba A\", \"3\u00ba B\"];\r\nconst subjects = [\"Artes\", \"Educa\u00e7\u00e3o F\u00edsica\", \"Filosofia\", \"Sociologia\", \"Ingl\u00eas\", \"F\u00edsica\", \"Qu\u00edmica\", \"Biologia\", \"Geografia\", \"Hist\u00f3ria\", \"Matem\u00e1tica\", \"L\u00edngua Portuguesa\", \"Projeto de Vida\", \"Tac\"];\r\n\r\nconst colors = {\r\n    \"Artes\": \"#f8b195\", \"Educa\u00e7\u00e3o F\u00edsica\": \"#f67280\", \"Filosofia\": \"#f2f2bf\", \"Sociologia\": \"#5768fa\",\r\n    \"Ingl\u00eas\": \"#92fa7d\", \"F\u00edsica\": \"#99b898\", \"Qu\u00edmica\": \"#fac0f6\", \"Biologia\": \"#a8e6cf\",\r\n    \"Geografia\": \"#ffd3b6\", \"Hist\u00f3ria\": \"#ffaaa5\", \"Matem\u00e1tica\": \"#dcedc1\",\r\n    \"L\u00edngua Portuguesa\": \"#ff8b94\", \"Projeto de Vida\": \"#b5ead7\", \"Tac\": \"#eeeeee\"\r\n};\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    renderTable();\r\n    loadData();\r\n});\r\n\r\nfunction renderTable() {\r\n    const tbody = document.querySelector(\"#timetable tbody\");\r\n    tbody.innerHTML = \"\";\r\n    days.forEach(day => {\r\n        periods.forEach((period, index) => {\r\n            const tr = document.createElement(\"tr\");\r\n            if (index === 0) {\r\n                const dayCell = document.createElement(\"td\");\r\n                dayCell.textContent = day;\r\n                dayCell.classList.add(\"day-cell\");\r\n                dayCell.rowSpan = periods.length;\r\n                tr.appendChild(dayCell);\r\n            }\r\n            const periodCell = document.createElement(\"td\");\r\n            periodCell.textContent = period;\r\n            tr.appendChild(periodCell);\r\n\r\n            classes.forEach((className, classIdx) => {\r\n                const td = document.createElement(\"td\");\r\n                const sel = document.createElement(\"select\");\r\n                \/\/ Criamos um ID \u00fanico para cada select para facilitar o salvamento\r\n                sel.dataset.coord = `${day}-${period}-${classIdx}`;\r\n                sel.innerHTML = `<option value=\"\">\u2014<\/option>` + subjects.map(s => `<option value=\"${s}\">${s}<\/option>`).join('');\r\n                \r\n                sel.addEventListener(\"change\", function() {\r\n                    this.style.backgroundColor = colors[this.value] || \"\";\r\n                    const rowValues = [...tr.querySelectorAll(\"select\")].map(s => s.value).filter(v => v && v !== \"Sem aula\");\r\n                    if (this.value && this.value !== \"Sem aula\" && rowValues.filter(v => v === this.value).length > 1) {\r\n                        alert(\"Conflito! Disciplina j\u00e1 usada neste hor\u00e1rio.\");\r\n                        this.value = \"\";\r\n                        this.style.backgroundColor = \"\";\r\n                    }\r\n                    saveData();\r\n                });\r\n                td.appendChild(sel);\r\n                tr.appendChild(td);\r\n            });\r\n            if (index === periods.length - 1) tr.classList.add(\"end-day\");\r\n            tbody.appendChild(tr);\r\n        });\r\n    });\r\n}\r\n\r\nfunction saveData() {\r\n    const data = {};\r\n    document.querySelectorAll(\"select\").forEach(sel => {\r\n        if(sel.value) data[sel.dataset.coord] = sel.value;\r\n    });\r\n    localStorage.setItem(\"timetableData\", JSON.stringify(data));\r\n}\r\n\r\nfunction loadData() {\r\n    const saved = localStorage.getItem(\"timetableData\");\r\n    if (!saved) return;\r\n    const data = JSON.parse(saved);\r\n    document.querySelectorAll(\"select\").forEach(sel => {\r\n        const val = data[sel.dataset.coord];\r\n        if (val) {\r\n            sel.value = val;\r\n            sel.style.backgroundColor = colors[val] || \"\";\r\n        }\r\n    });\r\n}\r\n\r\nfunction clearTable() {\r\n    if (confirm(\"Tem certeza que deseja limpar todo o hor\u00e1rio?\")) {\r\n        localStorage.removeItem(\"timetableData\");\r\n        renderTable();\r\n    }\r\n}\r\n\r\nfunction downloadPDF() {\r\n    const { jsPDF } = window.jspdf;\r\n    const doc = new jsPDF({ orientation: \"landscape\", unit: \"mm\", format: \"a4\" });\r\n    doc.text(\"HOR\u00c1RIO ESCOLAR\", 148, 15, { align: \"center\" });\r\n\r\n    const headers = [[\"Dia\", \"Hor\u00e1rio\", ...classes]];\r\n    const data = [];\r\n    let currentDay = \"\";\r\n\r\n    document.querySelectorAll(\"#timetable tbody tr\").forEach(row => {\r\n        const rowData = [];\r\n        const cells = row.querySelectorAll(\"td\");\r\n        let cellIdx = 0;\r\n        if (cells.length === classes.length + 2) {\r\n            currentDay = cells[0].textContent;\r\n            rowData.push(currentDay);\r\n            cellIdx = 1;\r\n        } else {\r\n            rowData.push(\"\");\r\n        }\r\n        for (let i = cellIdx; i < cells.length; i++) {\r\n            const select = cells[i].querySelector(\"select\");\r\n            rowData.push(select ? (select.value || \"\u2014\") : cells[i].textContent);\r\n        }\r\n        data.push(rowData);\r\n    });\r\n\r\n    doc.autoTable({\r\n        head: headers,\r\n        body: data,\r\n        startY: 25,\r\n        theme: 'grid',\r\n        styles: { fontSize: 7, halign: 'center' },\r\n        headStyles: { fillColor: [100, 100, 100] },\r\n        didParseCell: function (data) {\r\n            if (data.section === 'body' && data.column.index > 1) {\r\n                const val = data.cell.raw;\r\n                if (colors[val]) {\r\n                    const hex = colors[val].replace('#', '');\r\n                    const r = parseInt(hex.substring(0, 2), 16);\r\n                    const g = parseInt(hex.substring(2, 4), 16);\r\n                    const b = parseInt(hex.substring(4, 6), 16);\r\n                    data.cell.styles.fillColor = [r, g, b];\r\n                    data.cell.styles.textColor = (r*0.299 + g*0.587 + b*0.114) > 150 ? 0 : 255;\r\n                }\r\n            }\r\n        }\r\n    });\r\n    doc.save(\"Horario_Escolar.pdf\");\r\n}\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Hor\u00e1rio Escolar HOR\u00c1RIO ESCOLAR Dia Hor\u00e1rio 1\u00ba A 1\u00ba B 1\u00ba C 2\u00ba A 2\u00ba B 2\u00ba C 3\u00ba A [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1927","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=\/wp\/v2\/pages\/1927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1927"}],"version-history":[{"count":253,"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=\/wp\/v2\/pages\/1927\/revisions"}],"predecessor-version":[{"id":5972,"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=\/wp\/v2\/pages\/1927\/revisions\/5972"}],"wp:attachment":[{"href":"https:\/\/matematicasaomiguel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}