Merge pull request #299 from IBCornelsen/Jens

Berechnung A7 Wärmequellen durch solare Einstrahlung  fertiggestellt
This commit is contained in:
Jens Cornelsen
2025-01-28 00:05:52 +01:00
committed by GitHub
4 changed files with 1023 additions and 306 deletions

View File

@@ -0,0 +1,222 @@
<script lang="ts">
import { BerechnungWaermequellenSolareEinstrahlung } from "#lib/Berechnungen/BedarfsausweisWohnen/BerechnungWaermequellenSolareEinstrahlung.js";
// Berechnete Werte aus A5
$: result = BerechnungWaermequellenSolareEinstrahlung();
</script>
<div class="overflow-x-auto mt-16">
<table class="table-auto border-collapse border border-gray-300 w-full text-sm">
<!-- Tabellenkopf -->
<thead>
<tr class="bg-gray-200 text-left">
<th colspan="6" class="border border-gray-300 p-2">
<h2>Tabelle A.7 — Gebäude Berechnung Wärmequellen durch solare Einstrahlung</h2>
</th>
</tr>
<tr class="bg-gray-200 text-left">
<th colspan="6" class="border border-gray-300 p-2 text-xl">
Solare Einstrahlung für transparente Flächen
</th>
</tr>
</thead>
<!-- Tabellenkörper -->
<thead>
<tr class="bg-yellow-100 text-left">
<th class="border border-gray-300 p-2 w-4/12 bg-white">Orientierung</th>
{#each result.PlanungswerteFenster as fenster, index}
<th class="border border-gray-300 p-2 w-1/12 text-center">{fenster.OrientierungFensterFlaeche}</th>
{/each}
<th class="border border-gray-300 p-2 w-2/12 bg-white text-center">Gesamtfläche</th>
</tr>
</thead>
<!-- Tabellenkörper -->
<tbody>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Neigung</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.NeigungFensterflaeche}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white">[m²]</td>
</tr>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Bauteilfläche A [m²] (1)</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.FensterFlaeche}</td>
{/each}
<td class="border-2 border-gray-600 p-2 text-center bg-white">{Math.round(result.summeFensterFlaeche*100)/100}</td>
</tr>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Gesamtenergiedurchlassgrad g (2)</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.GesamtEnergieDurchlassGrad}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white">Abm. Rahmenanteil F<sub>F</sub> (3)</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.RahmenAnteil}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white">Abm. Strahlungseinfluss F<sub>w</sub> (4)</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.StrahlungsEinfluss}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white ">Abm. Verschattung F<sub>s</sub> (5)</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.Verschattung}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2">wirks. Gesamtenergiedurchlassgrad<br>
g<sub>eff</sub> = g · F<sub>w</sub> · F<sub>s</sub><br>
(6) = (2) · (4) · (5)</td>
{#each result.ErgebnisseWirksamerGesamtEnergieDurchlassGrad as wert, index}
<td class="border-2 border-gray-600 p-2 text-center">{Math.round(wert * 100) / 100}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
</tbody>
</table>
<br>
<table class="table-auto border-collapse border border-gray-300 w-full text-sm">
<!-- Tabelle Kopf -->
<thead>
<tr class="text-center">
<th colspan="2" class="border border-gray-300 p-2 text-left">E<sub>sol</sub> aus Tabelle 17</th>
<th colspan="3" class="border border-gray-300 p-2 text-left">
Q<sub>S,tr</sub> = A ⋅ F<sub>F</sub> ⋅ g<sub>eff</sub>
⋅ E<sub>sol</sub> </th>
<th colspan="7" class="border border-gray-300 p-2 text-left"></th>
</tr>
<tr class="text-center">
<th class="border border-gray-300 p-2">Monat</th>
{#each result.ErgebnisseMonatsWerteJanuar as wert, index}
<th class="border border-gray-300 p-2">E<sub>sol</sub><br>[kWh/m²]<br></th>
<th class="border border-gray-300 p-2">Q<sub>str</sub><br>[kWh]</th>
{/each}
<th class="border border-gray-300 p-2">ΣQ<sub>str</sub><br>[kWh]</th>
</tr>
</thead>
<!-- Tabelle Körper -->
<tbody>
<!-- Monatsdaten -->
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">Januar</td>
{#each result.ErgebnisseMonatsWerteJanuar as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseJanuar[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseJanuar * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">Februar</td>
{#each result.ErgebnisseMonatsWerteFebruar as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseFebruar[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseFebruar * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">März</td>
{#each result.ErgebnisseMonatsWerteMaerz as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseMaerz[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseMaerz * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">April</td>
{#each result.ErgebnisseMonatsWerteApril as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseApril[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseApril * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">Mai</td>
{#each result.ErgebnisseMonatsWerteMai as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseMai[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseMai * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">Juni</td>
{#each result.ErgebnisseMonatsWerteJuni as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseJuni[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseJuni * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">Juli</td>
{#each result.ErgebnisseMonatsWerteJuli as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseJuli[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseJuli * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">August</td>
{#each result.ErgebnisseMonatsWerteAugust as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseAugust[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseAugust * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">September</td>
{#each result.ErgebnisseMonatsWerteSeptember as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseSeptember[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseSeptember * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">Oktober</td>
{#each result.ErgebnisseMonatsWerteOktober as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseOktober[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseOktober * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">November</td>
{#each result.ErgebnisseMonatsWerteNovember as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseNovember[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseNovember * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 text-center">Dezember</td>
{#each result.ErgebnisseMonatsWerteDezember as wert, index}
<td class="border border-gray-300 p-2 bg-blue-100">{Math.round(wert*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.ErgebnisseDezember[index]*100)/100}</td>
{/each}
<td class="border-2 border-gray-600 p-2">{Math.round(result.summeErgebnisseDezember * 100) / 100}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2 font-bold text-center">Jahressumme</td>
{#each result.ErgebnisseMonatsWerteDezember as wert, index}
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
{/each}
<td class="border-2 border-gray-600 p-2 font-bold">{Math.round(result.summeErgebnisseJahr * 100) / 100}</td>
</tr>
</tbody>
</table>
</div>

View File

@@ -0,0 +1,201 @@
import { funktionSolareBestrahlungsEnergie } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionSolareBestrahlungsEnergie.js";
export function BerechnungWaermequellenSolareEinstrahlung() {
const ErgebnisseJanuar: number[][] = [];
const ErgebnisseMonatsWerteJanuar: number[][] = [];
const ErgebnisseFebruar: number[][] = [];
const ErgebnisseMonatsWerteFebruar: number[][] = [];
const ErgebnisseMaerz: number[][] = [];
const ErgebnisseMonatsWerteMaerz: number[][] = [];
const ErgebnisseApril: number[][] = [];
const ErgebnisseMonatsWerteApril: number[][] = [];
const ErgebnisseMai: number[][] = [];
const ErgebnisseMonatsWerteMai: number[][] = [];
const ErgebnisseJuni: number[][] = [];
const ErgebnisseMonatsWerteJuni: number[][] = [];
const ErgebnisseJuli: number[][] = [];
const ErgebnisseMonatsWerteJuli: number[][] = [];
const ErgebnisseAugust: number[][] = [];
const ErgebnisseMonatsWerteAugust: number[][] = [];
const ErgebnisseSeptember: number[][] = [];
const ErgebnisseMonatsWerteSeptember: number[][] = [];
const ErgebnisseOktober: number[][] = [];
const ErgebnisseMonatsWerteOktober: number[][] = [];
const ErgebnisseNovember: number[][] = [];
const ErgebnisseMonatsWerteNovember: number[][] = [];
const ErgebnisseDezember: number[][] = [];
const ErgebnisseMonatsWerteDezember: number[][] = [];
const ErgebnisseWirksamerGesamtEnergieDurchlassGrad: number[][] = [];
// Aus Planung, Konstante für Neigung Fensterfläche (bei Dachfenstern kann die Neigung zwischen 0 und 85)
const PlanungswerteFenster = [
{
FensterFlaeche: 18.91,
NeigungFensterflaeche: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "West"
},
{
FensterFlaeche: 19.62,
NeigungFensterflaeche: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "Süd"
},
{
FensterFlaeche: 2.97,
NeigungFensterflaeche: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "Nord"
},
{
FensterFlaeche: 4.3,
NeigungFensterflaeche: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "Ost"
}
];
// const MonatsWerteWest = funktionSolareBestrahlungsEnergie(NeigungFensterflaeche, OrientierungFensterFlaecheWest);
PlanungswerteFenster.forEach(item => {
const MonatsWerte = funktionSolareBestrahlungsEnergie(item.NeigungFensterflaeche, item.OrientierungFensterFlaeche);
if (MonatsWerte) {
const SolareWaermequelleJanuar = MonatsWerte.jan * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteJanuar = MonatsWerte.jan;
const SolareWaermequelleFebruar = MonatsWerte.feb * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteFebruar = MonatsWerte.feb;
const SolareWaermequelleMaerz = MonatsWerte.mrz * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteMaerz = MonatsWerte.mrz;
const SolareWaermequelleApril = MonatsWerte.apr * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteApril = MonatsWerte.apr;
const SolareWaermequelleMai = MonatsWerte.mai * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteMai = MonatsWerte.mai;
const SolareWaermequelleJuni = MonatsWerte.jun * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteJuni = MonatsWerte.jun;
const SolareWaermequelleJuli = MonatsWerte.jul * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteJuli = MonatsWerte.jul;
const SolareWaermequelleAugust = MonatsWerte.aug * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteAugust = MonatsWerte.aug;
const SolareWaermequelleSeptember = MonatsWerte.sep * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteSeptember = MonatsWerte.sep;
const SolareWaermequelleOktober = MonatsWerte.okt * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteOktober = MonatsWerte.okt;
const SolareWaermequelleNovember = MonatsWerte.nov * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteNovember = MonatsWerte.nov;
const SolareWaermequelleDezember = MonatsWerte.dez * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteDezember = MonatsWerte.dez;
ErgebnisseJanuar.push(SolareWaermequelleJanuar);
ErgebnisseMonatsWerteJanuar.push(MonatsWerteJanuar);
ErgebnisseFebruar.push(SolareWaermequelleFebruar);
ErgebnisseMonatsWerteFebruar.push(MonatsWerteFebruar);
ErgebnisseMaerz.push(SolareWaermequelleMaerz);
ErgebnisseMonatsWerteMaerz.push(MonatsWerteMaerz);
ErgebnisseApril.push(SolareWaermequelleApril);
ErgebnisseMonatsWerteApril.push(MonatsWerteApril);
ErgebnisseMai.push(SolareWaermequelleMai);
ErgebnisseMonatsWerteMai.push(MonatsWerteMai);
ErgebnisseJuni.push(SolareWaermequelleJuni);
ErgebnisseMonatsWerteJuni.push(MonatsWerteJuni);
ErgebnisseJuli.push(SolareWaermequelleJuli);
ErgebnisseMonatsWerteJuli.push(MonatsWerteJuli);
ErgebnisseAugust.push(SolareWaermequelleAugust);
ErgebnisseMonatsWerteAugust.push(MonatsWerteAugust);
ErgebnisseSeptember.push(SolareWaermequelleSeptember);
ErgebnisseMonatsWerteSeptember.push(MonatsWerteSeptember);
ErgebnisseOktober.push(SolareWaermequelleOktober);
ErgebnisseMonatsWerteOktober.push(MonatsWerteOktober);
ErgebnisseNovember.push(SolareWaermequelleNovember);
ErgebnisseMonatsWerteNovember.push(MonatsWerteNovember);
ErgebnisseDezember.push(SolareWaermequelleDezember);
ErgebnisseMonatsWerteDezember.push(MonatsWerteDezember);
}
const WirksamerGesamtEnergieDurchlassGrad = item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
ErgebnisseWirksamerGesamtEnergieDurchlassGrad.push(WirksamerGesamtEnergieDurchlassGrad);
});
console.log(ErgebnisseJanuar[1]);
console.log(ErgebnisseMonatsWerteJanuar);
const summeErgebnisseJanuar = ErgebnisseJanuar.reduce((acc, val) => acc + val, 0);
const summeErgebnisseFebruar = ErgebnisseFebruar.reduce((acc, val) => acc + val, 0);
const summeErgebnisseMaerz = ErgebnisseMaerz.reduce((acc, val) => acc + val, 0);
const summeErgebnisseApril = ErgebnisseApril.reduce((acc, val) => acc + val, 0);
const summeErgebnisseMai = ErgebnisseMai.reduce((acc, val) => acc + val, 0);
const summeErgebnisseJuni = ErgebnisseJuni.reduce((acc, val) => acc + val, 0);
const summeErgebnisseJuli = ErgebnisseJuli.reduce((acc, val) => acc + val, 0);
const summeErgebnisseAugust = ErgebnisseAugust.reduce((acc, val) => acc + val, 0);
const summeErgebnisseSeptember = ErgebnisseSeptember.reduce((acc, val) => acc + val, 0);
const summeErgebnisseOktober = ErgebnisseOktober.reduce((acc, val) => acc + val, 0);
const summeErgebnisseNovember = ErgebnisseNovember.reduce((acc, val) => acc + val, 0);
const summeErgebnisseDezember = ErgebnisseDezember.reduce((acc, val) => acc + val, 0);
const summeErgebnisseJahr = summeErgebnisseJanuar + summeErgebnisseFebruar + summeErgebnisseMaerz +
summeErgebnisseApril + summeErgebnisseMai + summeErgebnisseJuni + summeErgebnisseJuli +
summeErgebnisseAugust + summeErgebnisseSeptember + summeErgebnisseOktober + summeErgebnisseNovember +
summeErgebnisseDezember;
const summeFensterFlaeche = PlanungswerteFenster.reduce((acc, val) => acc + val.FensterFlaeche, 0);
return {
PlanungswerteFenster,
ErgebnisseJanuar,
ErgebnisseMonatsWerteJanuar,
ErgebnisseFebruar,
ErgebnisseMonatsWerteFebruar,
ErgebnisseMaerz,
ErgebnisseMonatsWerteMaerz,
ErgebnisseApril,
ErgebnisseMonatsWerteApril,
ErgebnisseMai,
ErgebnisseMonatsWerteMai,
ErgebnisseJuni,
ErgebnisseMonatsWerteJuni,
ErgebnisseJuli,
ErgebnisseMonatsWerteJuli,
ErgebnisseAugust,
ErgebnisseMonatsWerteAugust,
ErgebnisseSeptember,
ErgebnisseMonatsWerteSeptember,
ErgebnisseOktober,
ErgebnisseMonatsWerteOktober,
ErgebnisseNovember,
ErgebnisseMonatsWerteNovember,
ErgebnisseDezember,
ErgebnisseMonatsWerteDezember,
summeErgebnisseJanuar,
summeErgebnisseFebruar,
summeErgebnisseMaerz,
summeErgebnisseApril,
summeErgebnisseMai,
summeErgebnisseJuni,
summeErgebnisseJuli,
summeErgebnisseAugust,
summeErgebnisseSeptember,
summeErgebnisseOktober,
summeErgebnisseNovember,
summeErgebnisseDezember,
summeErgebnisseJahr,
ErgebnisseWirksamerGesamtEnergieDurchlassGrad,
summeFensterFlaeche,
}
}

View File

@@ -0,0 +1,598 @@
type DatasetEntry = {
neigung: number;
jan: number;
feb: number;
mrz: number;
apr: number;
mai: number;
jun: number;
jul: number;
aug: number;
sep: number;
okt: number;
nov: number;
dez: number;
jahreswert: number;
orientierung: string;
};
const dataset: DatasetEntry[] = [
{
"neigung": 0,
"jan": 21.58,
"feb": 29.57,
"mrz": 72.17,
"apr": 136.08,
"mai": 164.42,
"jun": 173.52,
"jul": 156.24,
"aug": 133.92,
"sep": 91.44,
"okt": 57.29,
"nov": 22.32,
"dez": 12.65,
"jahreswert": 1072,
"orientierung": "horizontal"
},
{
"neigung": 30,
"jan": 37.2,
"feb": 36.96,
"mrz": 90.02,
"apr": 156.24,
"mai": 171.12,
"jun": 173.52,
"jul": 154.75,
"aug": 148.06,
"sep": 113.04,
"okt": 81.84,
"nov": 29.52,
"dez": 19.34,
"jahreswert": 1211,
"orientierung": "Süd"
},
{
"neigung": 45,
"jan": 42.41,
"feb": 37.63,
"mrz": 92.26,
"apr": 154.08,
"mai": 162.19,
"jun": 161.28,
"jul": 144.34,
"aug": 143.59,
"sep": 115.2,
"okt": 88.54,
"nov": 31.68,
"dez": 21.58,
"jahreswert": 1195,
"orientierung": "Süd"
},
{
"neigung": 60,
"jan": 45.38,
"feb": 36.96,
"mrz": 90.02,
"apr": 144.72,
"mai": 145.82,
"jun": 141.84,
"jul": 127.97,
"aug": 132.43,
"sep": 111.6,
"okt": 90.02,
"nov": 31.68,
"dez": 23.06,
"jahreswert": 1122,
"orientierung": "Süd"
},
{
"neigung": 90,
"jan": 43.9,
"feb": 31.58,
"mrz": 72.91,
"apr": 105.84,
"mai": 98.21,
"jun": 89.28,
"jul": 84.07,
"aug": 94.49,
"sep": 88.56,
"okt": 78.86,
"nov": 28.08,
"dez": 21.58,
"jahreswert": 838,
"orientierung": "Süd"
},
{
"neigung": 30,
"jan": 34.22,
"feb": 34.94,
"mrz": 84.82,
"apr": 154.08,
"mai": 168.89,
"jun": 174.24,
"jul": 157.73,
"aug": 144.34,
"sep": 105.84,
"okt": 75.89,
"nov": 27.36,
"dez": 17.11,
"jahreswert": 1179,
"orientierung": "Süd-Ost"
},
{
"neigung": 45,
"jan": 37.94,
"feb": 35.62,
"mrz": 86.3,
"apr": 152.64,
"mai": 161.45,
"jun": 164.88,
"jul": 149.54,
"aug": 139.87,
"sep": 106.56,
"okt": 79.61,
"nov": 28.08,
"dez": 18.6,
"jahreswert": 1159,
"orientierung": "Süd-Ost"
},
{
"neigung": 60,
"jan": 40.18,
"feb": 34.27,
"mrz": 83.33,
"apr": 144.72,
"mai": 147.31,
"jun": 149.04,
"jul": 136.15,
"aug": 130.2,
"sep": 101.52,
"okt": 79.61,
"nov": 27.36,
"dez": 19.34,
"jahreswert": 1092,
"orientierung": "Süd-Ost"
},
{
"neigung": 90,
"jan": 37.2,
"feb": 28.22,
"mrz": 66.96,
"apr": 112.32,
"mai": 106.39,
"jun": 105.12,
"jul": 98.21,
"aug": 96.72,
"sep": 79.92,
"okt": 67.7,
"nov": 23.04,
"dez": 17.11,
"jahreswert": 841,
"orientierung": "Süd-Ost"
},
{
"neigung": 30,
"jan": 29.76,
"feb": 32.93,
"mrz": 81.84,
"apr": 144.72,
"mai": 165.17,
"jun": 168.48,
"jul": 149.54,
"aug": 139.87,
"sep": 104.4,
"okt": 71.42,
"nov": 26.64,
"dez": 17.11,
"jahreswert": 1133,
"orientierung": "Süd-West"
},
{
"neigung": 45,
"jan": 31.99,
"feb": 32.26,
"mrz": 81.84,
"apr": 140.4,
"mai": 155.5,
"jun": 156.96,
"jul": 139.87,
"aug": 134.66,
"sep": 104.4,
"okt": 73.66,
"nov": 27.36,
"dez": 17.86,
"jahreswert": 1098,
"orientierung": "Süd-West"
},
{
"neigung": 60,
"jan": 32.74,
"feb": 30.91,
"mrz": 78.12,
"apr": 130.32,
"mai": 141.36,
"jun": 140.4,
"jul": 125.74,
"aug": 124.25,
"sep": 99.36,
"okt": 72.17,
"nov": 26.64,
"dez": 18.6,
"jahreswert": 1021,
"orientierung": "Süd-West"
},
{
"neigung": 90,
"jan": 29.76,
"feb": 24.19,
"mrz": 61.75,
"apr": 97.92,
"mai": 101.93,
"jun": 97.2,
"jul": 89.28,
"aug": 91.51,
"sep": 77.76,
"okt": 59.52,
"nov": 22.32,
"dez": 16.37,
"jahreswert": 771,
"orientierung": "Süd-West"
},
{
"neigung": 30,
"jan": 23.06,
"feb": 28.9,
"mrz": 70.68,
"apr": 136.08,
"mai": 156.98,
"jun": 166.32,
"jul": 152.52,
"aug": 128.71,
"sep": 87.84,
"okt": 57.29,
"nov": 21.6,
"dez": 12.65,
"jahreswert": 1042,
"orientierung": "Ost"
},
{
"neigung": 45,
"jan": 23.06,
"feb": 27.55,
"mrz": 67.7,
"apr": 130.32,
"mai": 147.31,
"jun": 156.24,
"jul": 144.34,
"aug": 121.27,
"sep": 82.8,
"okt": 55.06,
"nov": 20.16,
"dez": 11.9,
"jahreswert": 988,
"orientierung": "Ost"
},
{
"neigung": 60,
"jan": 22.32,
"feb": 25.54,
"mrz": 63.24,
"apr": 122.4,
"mai": 133.92,
"jun": 142.56,
"jul": 133.18,
"aug": 111.6,
"sep": 76.32,
"okt": 52.08,
"nov": 18.72,
"dez": 11.16,
"jahreswert": 912,
"orientierung": "Ost"
},
{
"neigung": 90,
"jan": 18.6,
"feb": 19.49,
"mrz": 50.59,
"apr": 96.48,
"mai": 101.93,
"jun": 108,
"jul": 102.67,
"aug": 85.56,
"sep": 59.76,
"okt": 40.92,
"nov": 14.4,
"dez": 8.93,
"jahreswert": 707,
"orientierung": "Ost"
},
{
"neigung": 30,
"jan": 18.6,
"feb": 26.88,
"mrz": 66.96,
"apr": 123.84,
"mai": 150.29,
"jun": 157.68,
"jul": 139.87,
"aug": 122.76,
"sep": 86.4,
"okt": 52.08,
"nov": 20.88,
"dez": 11.9,
"jahreswert": 978,
"orientierung": "West"
},
{
"neigung": 45,
"jan": 17.86,
"feb": 24.19,
"mrz": 62.5,
"apr": 114.48,
"mai": 139.13,
"jun": 144.72,
"jul": 129.46,
"aug": 113.83,
"sep": 80.64,
"okt": 48.36,
"nov": 19.44,
"dez": 11.9,
"jahreswert": 907,
"orientierung": "West"
},
{
"neigung": 60,
"jan": 16.37,
"feb": 22.18,
"mrz": 58.03,
"apr": 105.12,
"mai": 125.74,
"jun": 130.32,
"jul": 116.81,
"aug": 103.42,
"sep": 74.16,
"okt": 44.64,
"nov": 18,
"dez": 10.42,
"jahreswert": 824,
"orientierung": "West"
},
{
"neigung": 90,
"jan": 12.65,
"feb": 16.13,
"mrz": 44.64,
"apr": 82.08,
"mai": 94.49,
"jun": 97.92,
"jul": 87.05,
"aug": 78.12,
"sep": 56.88,
"okt": 34.97,
"nov": 13.68,
"dez": 8.18,
"jahreswert": 628,
"orientierung": "West"
},
{
"neigung": 30,
"jan": 11.9,
"feb": 21.5,
"mrz": 50.59,
"apr": 100.08,
"mai": 132.43,
"jun": 143.28,
"jul": 128.71,
"aug": 102.67,
"sep": 65.52,
"okt": 34.97,
"nov": 15.84,
"dez": 8.93,
"jahreswert": 817,
"orientierung": "Nord-West"
},
{
"neigung": 45,
"jan": 11.16,
"feb": 18.82,
"mrz": 43.15,
"apr": 83.52,
"mai": 112.34,
"jun": 121.68,
"jul": 110.86,
"aug": 86.3,
"sep": 55.44,
"okt": 29.76,
"nov": 14.4,
"dez": 8.18,
"jahreswert": 695,
"orientierung": "Nord-West"
},
{
"neigung": 60,
"jan": 9.67,
"feb": 16.8,
"mrz": 37.2,
"apr": 72.72,
"mai": 96.72,
"jun": 103.68,
"jul": 95.23,
"aug": 73.66,
"sep": 47.52,
"okt": 26.04,
"nov": 12.96,
"dez": 6.7,
"jahreswert": 600,
"orientierung": "Nord-West"
},
{
"neigung": 90,
"jan": 8.18,
"feb": 12.1,
"mrz": 28.27,
"apr": 56.16,
"mai": 71.42,
"jun": 77.76,
"jul": 70.68,
"aug": 55.06,
"sep": 36.72,
"okt": 20.83,
"nov": 9.36,
"dez": 5.21,
"jahreswert": 451,
"orientierung": "Nord-West"
},
{
"neigung": 30,
"jan": 12.65,
"feb": 22.85,
"mrz": 52.82,
"apr": 108.72,
"mai": 137.64,
"jun": 150.48,
"jul": 139.13,
"aug": 107.14,
"sep": 66.96,
"okt": 37.2,
"nov": 15.84,
"dez": 8.93,
"jahreswert": 861,
"orientierung": "Nord-Ost"
},
{
"neigung": 45,
"jan": 11.16,
"feb": 19.49,
"mrz": 45.38,
"apr": 94.32,
"mai": 119.04,
"jun": 130.32,
"jul": 124.25,
"aug": 91.51,
"sep": 56.88,
"okt": 31.25,
"nov": 14.4,
"dez": 8.18,
"jahreswert": 746,
"orientierung": "Nord-Ost"
},
{
"neigung": 60,
"jan": 10.42,
"feb": 17.47,
"mrz": 40.18,
"apr": 82.08,
"mai": 103.42,
"jun": 113.04,
"jul": 110.11,
"aug": 79.61,
"sep": 48.96,
"okt": 26.78,
"nov": 12.96,
"dez": 6.7,
"jahreswert": 651,
"orientierung": "Nord-Ost"
},
{
"neigung": 90,
"jan": 8.18,
"feb": 12.77,
"mrz": 30.5,
"apr": 62.64,
"mai": 77.38,
"jun": 83.52,
"jul": 83.33,
"aug": 60.26,
"sep": 37.44,
"okt": 21.58,
"nov": 9.36,
"dez": 5.21,
"jahreswert": 493,
"orientierung": "Nord-Ost"
},
{
"neigung": 30,
"jan": 11.9,
"feb": 19.49,
"mrz": 41.66,
"apr": 92.16,
"mai": 127.97,
"jun": 141.84,
"jul": 130.2,
"aug": 95.98,
"sep": 55.44,
"okt": 26.78,
"nov": 15.12,
"dez": 8.18,
"jahreswert": 766,
"orientierung": "Nord"
},
{
"neigung": 45,
"jan": 11.16,
"feb": 17.47,
"mrz": 31.99,
"apr": 64.8,
"mai": 101.18,
"jun": 115.92,
"jul": 107.88,
"aug": 70.68,
"sep": 40.32,
"okt": 24.55,
"nov": 13.68,
"dez": 7.44,
"jahreswert": 608,
"orientierung": "Nord"
},
{
"neigung": 60,
"jan": 9.67,
"feb": 16.13,
"mrz": 29.02,
"apr": 51.12,
"mai": 75.14,
"jun": 85.68,
"jul": 84.07,
"aug": 53.57,
"sep": 36,
"okt": 22.32,
"nov": 12.24,
"dez": 6.7,
"jahreswert": 482,
"orientierung": "Nord"
},
{
"neigung": 90,
"jan": 7.44,
"feb": 12.1,
"mrz": 23.06,
"apr": 41.76,
"mai": 55.8,
"jun": 59.76,
"jul": 60.26,
"aug": 42.41,
"sep": 29.52,
"okt": 18.6,
"nov": 9.36,
"dez": 5.21,
"jahreswert": 365,
"orientierung": "Nord"
}
];
export function funktionSolareBestrahlungsEnergie(neigung: number, orientierung: string): { [key: string]: number } | undefined {
const entry = dataset.find(item => item.neigung === neigung && item.orientierung.toLowerCase() === orientierung.toLowerCase());
if (!entry) {
return undefined;
}
const { jan, feb, mrz, apr, mai, jun, jul, aug, sep, okt, nov, dez } = entry;
return { jan, feb, mrz, apr, mai, jun, jul, aug, sep, okt, nov, dez };
}
// Beispielaufruf
// const MonatsWerte = funktionSolareBestrahlungsEnergie(90, "West");
// console.log(MonatsWerte); // should return the monthly values for neigung=30 and orientierung="Süd"

View File

@@ -8,6 +8,7 @@ import A1AnlagenBeschreibung from "#components/Tabellen/A1AnlagenBeschreibung.sv
import A2Wintergarten from "#components/Tabellen/A2Wintergarten.svelte"; import A2Wintergarten from "#components/Tabellen/A2Wintergarten.svelte";
import A5WaermeTransferMaxStroemeBauteile from "#components/Tabellen/A5WaermeTransferMaxStroemeBauteile.svelte"; import A5WaermeTransferMaxStroemeBauteile from "#components/Tabellen/A5WaermeTransferMaxStroemeBauteile.svelte";
import A6WaermeTransferMaxStroemeGesamt from "#components/Tabellen/A6WaermeTransferMaxStroemeGesamt.svelte"; import A6WaermeTransferMaxStroemeGesamt from "#components/Tabellen/A6WaermeTransferMaxStroemeGesamt.svelte";
import A7WaermequellenSolareEinstrahlung from "#components/Tabellen/A7WaermequellenSolareEinstrahlung.svelte";
import A9Trinkwassererwaermung from "#components/Tabellen/A9Trinkwassererwaermung.svelte"; import A9Trinkwassererwaermung from "#components/Tabellen/A9Trinkwassererwaermung.svelte";
import A12NutzenergiebedarfHeizung from "#components/Tabellen/A12NutzenergiebedarfHeizung.svelte"; import A12NutzenergiebedarfHeizung from "#components/Tabellen/A12NutzenergiebedarfHeizung.svelte";
@@ -449,312 +450,7 @@ const ausweis: BedarfsausweisWohnenClient = {};
<A6WaermeTransferMaxStroemeGesamt {ausweis} {gebaeude_aufnahme} client:load></A6WaermeTransferMaxStroemeGesamt> <A6WaermeTransferMaxStroemeGesamt {ausweis} {gebaeude_aufnahme} client:load></A6WaermeTransferMaxStroemeGesamt>
<div class="overflow-x-auto mt-16"> <A7WaermequellenSolareEinstrahlung client:load></A7WaermequellenSolareEinstrahlung>
<table class="table-auto border-collapse border border-gray-300 w-full text-sm">
<!-- Tabellenkopf -->
<thead>
<tr class="bg-gray-200 text-left">
<th colspan="6" class="border border-gray-300 p-2">
<h2>Tabelle A.7 — Gebäude Berechnung Wärmequellen durch solare Einstrahlung</h2>
</th>
</tr>
<tr class="bg-gray-200 text-left">
<th colspan="6" class="border border-gray-300 p-2 text-xl">
Solare Einstrahlung für transparente Flächen
</th>
</tr>
</thead>
<!-- Tabellenkörper -->
<thead>
<tr class="bg-yellow-100 text-left">
<th class="border border-gray-300 p-2 w-4/12 bg-white">Orientierung</th>
<th class="border border-gray-300 p-2 w-1/12"></th>
<th class="border border-gray-300 p-2 w-1/12"></th>
<th class="border border-gray-300 p-2 w-1/12"></th>
<th class="border border-gray-300 p-2 w-1/12"></th>
<th class="border border-gray-300 p-2 w-2/12 bg-white text-center">Gesamtfläche</th>
</tr>
</thead>
<!-- Tabellenkörper -->
<tbody>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Neigung</td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center bg-white">[m²]</td>
</tr>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Bauteilfläche A [m²] (1)</td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border-2 border-gray-600 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Gesamtenergiedurchlassgrad g (2)</td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white">Abm. Rahmenanteil F<sub>F</sub> (3)</td>
<td class="border border-gray-300 p-2 text-center">0,7</td>
<td class="border border-gray-300 p-2 text-center">0,7</td>
<td class="border border-gray-300 p-2 text-center">0,7</td>
<td class="border border-gray-300 p-2 text-center">0,7</td>
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white">Abm. Strahlungseinfluss F<sub>w</sub> (4)</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white ">Abm. Verschattung F<sub>s</sub> (5)</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center">0,9</td>
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2">wirks. Gesamtenergiedurchlassgrad<br>
g<sub>eff</sub> = g · F<sub>w</sub> · F<sub>s</sub><br>
(6) = (2) · (4) · (5)</td>
<td class="border-2 border-gray-600 p-2 text-center"></td>
<td class="border-2 border-gray-600 p-2 text-center"></td>
<td class="border-2 border-gray-600 p-2 text-center"></td>
<td class="border-2 border-gray-600 p-2 text-center"></td>
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
</tbody>
</table>
<br>
<table class="table-auto border-collapse border border-gray-300 w-full text-sm">
<!-- Tabelle Kopf -->
<thead>
<tr class="text-center">
<th colspan="2" class="border border-gray-300 p-2 text-left">E<sub>sol</sub> aus Tabelle 17</th>
<th colspan="3" class="border border-gray-300 p-2 text-left">
Q<sub>S,tr</sub> = A ⋅ F<sub>F</sub> ⋅ g<sub>eff</sub>
⋅ E<sub>sol</sub></th>
<th colspan="7" class="border border-gray-300 p-2 text-left"></th>
</tr>
<tr class="text-center">
<th class="border border-gray-300 p-2">Monat</th>
<th class="border border-gray-300 p-2">E<sub>sol</sub><br>[kWh/m²]<br>(7)</th>
<th class="border border-gray-300 p-2">Q<sub>str</sub><br>[kWh]<br>(8) = (1) ⋅ (3) ⋅ (6) ⋅ (7)</th>
<th class="border border-gray-300 p-2">E<sub>sol</sub><br>[kWh/m²]<br>(9)</th>
<th class="border border-gray-300 p-2">Q<sub>str</sub><br>[kWh]<br>(10) = (1) ⋅ (3) ⋅ (6) ⋅ (9)</th>
<th class="border border-gray-300 p-2">E<sub>sol</sub><br>[kWh/m²]<br>(11)</th>
<th class="border border-gray-300 p-2">Q<sub>str</sub><br>[kWh]<br>(12) = (1) ⋅ (3) ⋅ (6) ⋅ (11)</th>
<th class="border border-gray-300 p-2">E<sub>sol</sub><br>[kWh/m²]<br>(13)</th>
<th class="border border-gray-300 p-2">Q<sub>str</sub><br>[kWh]<br>(14) = (1) ⋅ (3) ⋅ (6) ⋅ (13)</th>
<th class="border border-gray-300 p-2">E<sub>sol</sub><br>[kWh/m²]<br>(15)</th>
<th class="border border-gray-300 p-2">Q<sub>str</sub><br>[kWh]<br>(16) = (1) ⋅ (3) ⋅ (6) ⋅ (15)</th>
<th class="border border-gray-300 p-2">ΣQ<sub>str</sub><br>[kWh]<br>(17) = (8) + (10) + (12) + (14) + (16)</th>
</tr>
</thead>
<!-- Tabelle Körper -->
<tbody>
<!-- Monatsdaten -->
<tr>
<td class="border border-gray-300 p-2 text-center">Januar</td>
<td class="border border-gray-300 p-2b bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">Februar</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">März</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">April</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">Mai</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">Juni</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">Juli</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">August</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">September</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">Oktober</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">November</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 text-center">Dezember</td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr>
<td class="border border-gray-300 p-2 font-bold text-center">Jahressumme</td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border border-gray-300 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
</tbody>
</table>
</div>
<div class="overflow-x-auto mt-16"> <div class="overflow-x-auto mt-16">
<table class="table-auto border-collapse border border-gray-300 w-full text-sm"> <table class="table-auto border-collapse border border-gray-300 w-full text-sm">