DankBar to GDD converter Ein Service der Gradido Academie [https://gradido.net]
Vue3, Vite, Vuetify
Demo: https://gradido.github.io/DankBar-converter/
- $ git clone https://github.com/gradido/DankBar-converter.git
- $ cd DankBar-converter
- $ yarn
- $ yarn dev
build
- $ yarn build
https://github.com/gradido/DankBar-converter/blob/master/src/components/Converter.vue
Wenn wir, am 7. Mai 2023, den Code ausführen, würde der Wert von faktor1() den Wert von Math.pow(0.998098, this.tag) haben, wobei this.tag die Anzahl der Tage seit dem 1. Januar 2023 ist.
Die Anzahl der Tage seit dem 1. Januar 2023 bis zum heutigen Tag (7. Mai 2023) beträgt 126 Tage. Daher wäre der Wert von faktor1():
Math.pow(0.998098, 126) = 0.6785977265658498 Also wäre der aktuelle Wert von faktor1() ungefähr 0.6786 (auf vier Nachkommastellen gerundet).
this.tag =
const start = new Date(this.year, 0, 1)
const v1 = this.now - start
const v2 = start.getTimezoneOffset() - this.now.getTimezoneOffset()
const diff = v1 + (v2 * 60 * 1000)
return Math.floor(diff / (1000 * 60 * 60 * 24))
const start = new Date(this.year, 0, 1) Hier wird ein neues Datum-Objekt erstellt, das den 1. Januar des Jahres enthält, das in der Variable "this.year" gespeichert ist. Der Monat wird mit 0 angegeben, da JavaScript die Monate von 0 bis 11 zählt.
const v1 = this.now - start Hier wird die Zeitdauer zwischen dem 1. Januar des aktuellen Jahres und dem aktuellen Datum und Uhrzeit berechnet und in der Variablen "v1" gespeichert. Die Subtraktion der beiden Datum-Objekte ergibt die Differenz in Millisekunden.
const v2 = start.getTimezoneOffset() - this.now.getTimezoneOffset() Hier wird die Differenz zwischen der Zeitzone des 1. Januar des aktuellen Jahres und der Zeitzone des aktuellen Datums berechnet und in der Variablen "v2" gespeichert. getTimezoneOffset() gibt die Differenz in Minuten zwischen der Ortszeit und der UTC-Zeit zurück.
const diff = v1 + (v2 * 60 * 1000) Hier wird die Gesamtdifferenz in Millisekunden zwischen dem 1. Januar des aktuellen Jahres und dem aktuellen Datum berechnet, indem die Differenz in Millisekunden zwischen dem 1. Januar und dem aktuellen Datum (v1) und die Differenz in Minuten zwischen den beiden Zeitzonen (v2) multipliziert mit 60 (für Minuten) und 1000 (für Millisekunden) addiert werden.
return Math.floor(diff / (1000 * 60 * 60 * 24)) Hier wird die Gesamtdifferenz in Millisekunden in die Anzahl der vergangenen Tage seit dem 1. Januar des aktuellen Jahres umgewandelt, indem die Differenz in Millisekunden durch die Anzahl der Millisekunden pro Tag (1000 * 60 * 60 * 24) geteilt und auf den nächstniedrigeren ganzzahligen Wert abgerundet wird. Das Ergebnis wird zurückgegeben.
diese ganzen werte ergeben this.tag dadurch lässt sich der faktor1 ausrechnen :
faktor1() { return Math.pow(0.998098, this.tag) },
Hier ist ein Beispiel Code, wie du den Konverter recht einfach in eine HTML-Struktur einbinden.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>IFrame Example</title>
</head>
<body>
<h1>IFrame Example</h1>
<iframe src="https://gradido.github.io/DankBar-converter/"
title="DankBar Converter"
width="100%"
height="500px">
<!-- Dieser Text wird angezeigt, wenn das IFrame nicht geladen werden kann -->
<p>Ihr Browser unterstützt keine IFrames.</p>
</iframe>
</body>
</html>
In diesem Beispiel wird das iFrame verwendet, um die Website "https://gradido.github.io/DankBar-converter/" zu laden. Das src-Attribut gibt die URL der Website an, die im iFrame geladen werden soll. Das title-Attribut wird für die Barrierefreiheit und SEO-Zwecke verwendet, um den Zweck des iFrame zu beschreiben. Das width- und height-Attribut gibt die Größe des iFrame an.
<iframe src="https://gradido.github.io/DankBar-converter/"
title="DankBar Converter"
width="100%"
height="500px">
<!-- Dieser Text wird angezeigt, wenn das IFrame nicht geladen werden kann -->
<p>Ihr Browser unterstützt keine IFrames.</p>
</iframe>
Der Text innerhalb des IFrame-Tags wird angezeigt, wenn das iFrame nicht geladen werden kann. Dies kann zum Beispiel passieren, wenn die Website das Einbetten in einem iFrame aus Sicherheitsgründen blockiert.