Skip to content

Commit 06a13d7

Browse files
authored
Merge pull request #201 from behrends/Date_and_time
Date and time
2 parents 74a74c5 + d1f6d4d commit 06a13d7

File tree

17 files changed

+235
-234
lines changed

17 files changed

+235
-234
lines changed
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
The `new Date` constructor uses the local time zone. So the only important thing to remember is that months start from zero.
1+
Der `new Date` Konstruktor verwendet die lokale Zeitzone. Das Einzige, woran du dich erinnern musst, ist, dass die Zählung der Monate bei Null beginnt.
22

3-
So February has number 1.
3+
Also hat der Februar die Nummer 1.
44

5-
Here's an example with numbers as date components:
5+
Hier ist ein Beispiel mit Zahlen als Datumskomponenten:
66

77
```js run
8-
//new Date(year, month, date, hour, minute, second, millisecond)
8+
// new Date(Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde)
99
let d1 = new Date(2012, 1, 20, 3, 12);
1010
alert( d1 );
1111
```
12-
We could also create a date from a string, like this:
12+
Wir könnten auch ein Datum aus einem String erstellen, so wie hier:
1313

1414
```js run
15-
//new Date(datastring)
15+
//new Date(Datenstring)
1616
let d2 = new Date("2012-02-20T03:12");
1717
alert( d2 );
1818
```

1-js/05-data-types/11-date/1-new-date/task.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ importance: 5
22

33
---
44

5-
# Create a date
5+
# Erstelle ein Datum
66

7-
Create a `Date` object for the date: Feb 20, 2012, 3:12am. The time zone is local.
7+
Erstelle ein `Date`-Objekt für das Datum: 20. Feb. 2012, 3:12 Uhr morgens. Die Zeitzone ist lokal.
88

9-
Show it using `alert`.
9+
Zeige es mit `alert` an.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
The method `date.getDay()` returns the number of the weekday, starting from sunday.
1+
Die Methode `date.getDay()` gibt die Zahl des Wochentags zurück, beginnend mit Sonntag.
22

3-
Let's make an array of weekdays, so that we can get the proper day name by its number:
3+
Lass uns ein Array von Wochentagen erstellen, damit wir den richtigen Namen des Tages anhand seiner Nummer erhalten können:
44

55
```js run demo
66
function getWeekDay(date) {
7-
let days = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];
7+
let days = ['SO', 'MO', 'DI', 'MI', 'DO', 'FR', 'SA'];
88

99
return days[date.getDay()];
1010
}
1111

12-
let date = new Date(2014, 0, 3); // 3 Jan 2014
12+
let date = new Date(2014, 0, 3); // 3. Jan 2014
1313
alert( getWeekDay(date) ); // FR
1414
```

1-js/05-data-types/11-date/2-get-week-day/task.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ importance: 5
22

33
---
44

5-
# Show a weekday
5+
# Zeige einen Wochentag
66

7-
Write a function `getWeekDay(date)` to show the weekday in short format: 'MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'.
7+
Schreibe eine Funktion `getWeekDay(date)`, um den Wochentag in Kurzform anzuzeigen: 'MO', 'DI', 'MI', 'DO', 'FR', 'SA', 'SO'.
88

9-
For instance:
9+
Zum Beispiel:
1010

1111
```js no-beautify
12-
let date = new Date(2012, 0, 3); // 3 Jan 2012
13-
alert( getWeekDay(date) ); // should output "TU"
12+
let date = new Date(2012, 0, 3); // 3. Jan 2012
13+
alert( getWeekDay(date) ); // sollte "DI" ausgeben
1414
```

1-js/05-data-types/11-date/3-weekday/_js.view/solution.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ function getLocalDay(date) {
22

33
let day = date.getDay();
44

5-
if (day == 0) { // weekday 0 (sunday) is 7 in european
5+
if (day == 0) { // Wochentag 0 (Sonntag) ist 7 im europäischen Format
66
day = 7;
77
}
88

1-js/05-data-types/11-date/3-weekday/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ importance: 5
22

33
---
44

5-
# European weekday
5+
# Europäischer Wochentag
66

7-
European countries have days of week starting with Monday (number 1), then Tuesday (number 2) and till Sunday (number 7). Write a function `getLocalDay(date)` that returns the "European" day of week for `date`.
7+
Europäische Länder beginnen die Woche mit Montag (Nummer 1), gefolgt von Dienstag (Nummer 2) bis hin zum Sonntag (Nummer 7). Schreibe eine Funktion `getLocalDay(date)`, die den "europäischen" Wochentag für `date` zurückgibt.
88

99
```js no-beautify
10-
let date = new Date(2012, 0, 3); // 3 Jan 2012
11-
alert( getLocalDay(date) ); // tuesday, should show 2
10+
let date = new Date(2012, 0, 3); // 3. Jan 2012
11+
alert( getLocalDay(date) ); // Dienstag, sollte 2 anzeigen
1212
```
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
The idea is simple: to substract given number of days from `date`:
1+
Die Idee ist einfach: eine gegebene Anzahl von Tagen von `date` abzuziehen:
22

33
```js
44
function getDateAgo(date, days) {
@@ -7,9 +7,9 @@ function getDateAgo(date, days) {
77
}
88
```
99

10-
...But the function should not change `date`. That's an important thing, because the outer code which gives us the date does not expect it to change.
10+
...Aber die Funktion sollte `date` nicht ändern. Das ist eine wichtige Sache, denn der äußere Code, der uns das Datum bereitstellt, erwartet nicht, dass es sich ändert.
1111

12-
To implement it let's clone the date, like this:
12+
Um das zu implementieren, sollten wir das Datum klonen, so wie hier:
1313

1414
```js run demo
1515
function getDateAgo(date, days) {
@@ -21,7 +21,7 @@ function getDateAgo(date, days) {
2121

2222
let date = new Date(2015, 0, 2);
2323

24-
alert( getDateAgo(date, 1) ); // 1, (1 Jan 2015)
25-
alert( getDateAgo(date, 2) ); // 31, (31 Dec 2014)
26-
alert( getDateAgo(date, 365) ); // 2, (2 Jan 2014)
24+
alert( getDateAgo(date, 1) ); // 1, (1. Jan 2015)
25+
alert( getDateAgo(date, 2) ); // 31, (31. Dez 2014)
26+
alert( getDateAgo(date, 365) ); // 2, (2. Jan 2014)
2727
```

1-js/05-data-types/11-date/4-get-date-ago/task.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@ importance: 4
22

33
---
44

5-
# Which day of month was many days ago?
5+
# Welcher Tag des Monats war vor vielen Tagen?
66

7-
Create a function `getDateAgo(date, days)` to return the day of month `days` ago from the `date`.
7+
Erstelle eine Funktion `getDateAgo(date, days)`, um den Tag des Monats vor `days` Tagen ab dem Datum `date` zu ermitteln.
88

9-
For instance, if today is 20th, then `getDateAgo(new Date(), 1)` should be 19th and `getDateAgo(new Date(), 2)` should be 18th.
9+
Beispiel: Wenn heute der 20. ist, dann sollte `getDateAgo(new Date(), 1)` den 19. zurückgeben und `getDateAgo(new Date(), 2)` den 18.
1010

11-
Should work reliably for `days=365` or more:
11+
Die Funktion sollte auch zuverlässig für `days=365` oder mehr funktionieren:
1212

1313
```js
1414
let date = new Date(2015, 0, 2);
1515

16-
alert( getDateAgo(date, 1) ); // 1, (1 Jan 2015)
17-
alert( getDateAgo(date, 2) ); // 31, (31 Dec 2014)
18-
alert( getDateAgo(date, 365) ); // 2, (2 Jan 2014)
16+
alert( getDateAgo(date, 1) ); // 1, (1. Jan 2015)
17+
alert( getDateAgo(date, 2) ); // 31, (31. Dez 2014)
18+
alert( getDateAgo(date, 365) ); // 2, (2. Jan 2014)
1919
```
2020

21-
P.S. The function should not modify the given `date`.
21+
P.S. Die Funktion sollte das übergebene `date` nicht verändern.

1-js/05-data-types/11-date/5-last-day-of-month/solution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Let's create a date using the next month, but pass zero as the day:
1+
Lass uns ein Datum erstellen, indem wir den nächsten Monat nehmen, aber als Tag eine Null übergeben:
22
```js run demo
33
function getLastDayOfMonth(year, month) {
44
let date = new Date(year, month + 1, 0);
@@ -10,4 +10,4 @@ alert( getLastDayOfMonth(2012, 1) ); // 29
1010
alert( getLastDayOfMonth(2013, 1) ); // 28
1111
```
1212

13-
Normally, dates start from 1, but technically we can pass any number, the date will autoadjust itself. So when we pass 0, then it means "one day before 1st day of the month", in other words: "the last day of the previous month".
13+
Normalerweise beginnen Daten ab der Zahl 1, technisch gesehen können wir aber jede Zahl übergeben, das Datum wird sich selbst automatisch anpassen. Also, wenn wir 0 übergeben, dann bedeutet das "ein Tag vor dem ersten Tag des Monats", anders ausgedrückt: "der letzte Tag des vorherigen Monats".

1-js/05-data-types/11-date/5-last-day-of-month/task.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ importance: 5
22

33
---
44

5-
# Last day of month?
5+
# Letzter Tag des Monats?
66

7-
Write a function `getLastDayOfMonth(year, month)` that returns the last day of month. Sometimes it is 30th, 31st or even 28/29th for Feb.
7+
Schreibe eine Funktion `getLastDayOfMonth(year, month)`, die den letzten Tag des Monats zurückgibt. Manchmal ist es der 30., der 31. oder sogar der 28./29. für Februar.
88

9-
Parameters:
9+
Parameter:
1010

11-
- `year` -- four-digits year, for instance 2012.
12-
- `month` -- month, from 0 to 11.
11+
- `year` -- vierstelliges Jahr, zum Beispiel 2012.
12+
- `month` -- Monat, von 0 bis 11.
1313

14-
For instance, `getLastDayOfMonth(2012, 1) = 29` (leap year, Feb).
14+
Zum Beispiel `getLastDayOfMonth(2012, 1) = 29` (Schaltjahr, Feb).

1-js/05-data-types/11-date/6-get-seconds-today/solution.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
To get the number of seconds, we can generate a date using the current day and time 00:00:00, then substract it from "now".
1+
Um die Anzahl der Sekunden zu ermitteln, können wir ein Datum unter Verwendung des aktuellen Tages und der Uhrzeit 00:00:00 generieren und dieses von "jetzt" subtrahieren.
22

3-
The difference is the number of milliseconds from the beginning of the day, that we should divide by 1000 to get seconds:
3+
Die Differenz ist die Anzahl der Millisekunden seit Beginn des Tages, die wir durch 1000 teilen sollten, um Sekunden zu erhalten:
44

55
```js run
66
function getSecondsToday() {
77
let now = new Date();
88

9-
// create an object using the current day/month/year
9+
// erstelle ein Objekt mit dem aktuellen Tag/Monat/Jahr
1010
let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
1111

12-
let diff = now - today; // ms difference
13-
return Math.round(diff / 1000); // make seconds
12+
let diff = now - today; // ms Differenz
13+
return Math.round(diff / 1000); // mache Sekunden
1414
}
1515

1616
alert( getSecondsToday() );
1717
```
1818

19-
An alternative solution would be to get hours/minutes/seconds and convert them to seconds:
19+
Eine alternative Lösung wäre, Stunden/Minuten/Sekunden zu ermitteln und diese in Sekunden umzurechnen:
2020

2121
```js run
2222
function getSecondsToday() {

1-js/05-data-types/11-date/6-get-seconds-today/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ importance: 5
22

33
---
44

5-
# How many seconds have passed today?
5+
# Wie viele Sekunden sind heute bereits vergangen?
66

7-
Write a function `getSecondsToday()` that returns the number of seconds from the beginning of today.
7+
Schreibe eine Funktion `getSecondsToday()`, die die Anzahl der Sekunden seit Beginn des heutigen Tages zurückgibt.
88

9-
For instance, if now were `10:00 am`, and there was no daylight savings shift, then:
9+
Wenn es zum Beispiel jetzt `10:00 Uhr vormittags` wäre und es keine Umstellung auf Sommerzeit gäbe, dann:
1010

1111
```js
1212
getSecondsToday() == 36000 // (3600 * 10)
1313
```
1414

15-
The function should work in any day. That is, it should not have a hard-coded value of "today".
15+
Die Funktion sollte an jedem Tag funktionieren. Das heißt, sie sollte keinen fest einprogrammierten Wert von "heute" haben.
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
To get the number of milliseconds till tomorrow, we can from "tomorrow 00:00:00" substract the current date.
1+
Um die Anzahl der Millisekunden bis zum morgigen Tag zu berechnen, können wir vom "morgigen Tag, 00:00:00" das aktuelle Datum subtrahieren.
22

3-
First, we generate that "tomorrow", and then do it:
3+
Zuerst erzeugen wir das "morgige" Datum, und dann tun wir Folgendes:
44

55
```js run
66
function getSecondsToTomorrow() {
77
let now = new Date();
88

9-
// tomorrow date
9+
// morgiges Datum
1010
let tomorrow = new Date(now.getFullYear(), now.getMonth(), *!*now.getDate()+1*/!*);
1111

12-
let diff = tomorrow - now; // difference in ms
13-
return Math.round(diff / 1000); // convert to seconds
12+
let diff = tomorrow - now; // Differenz in ms
13+
return Math.round(diff / 1000); // umrechnen in Sekunden
1414
}
1515
```
1616

17-
Alternative solution:
17+
Alternative Lösung:
1818

1919
```js run
2020
function getSecondsToTomorrow() {
@@ -29,4 +29,4 @@ function getSecondsToTomorrow() {
2929
}
3030
```
3131

32-
Please note that many countries have Daylight Savings Time (DST), so there may be days with 23 or 25 hours. We may want to treat such days separately.
32+
Bitte beachte, dass viele Länder die Sommerzeit (DST) einführen, daher kann es Tage mit 23 oder 25 Stunden geben. Wir möchten solche Tage möglicherweise gesondert behandeln.

1-js/05-data-types/11-date/7-get-seconds-to-tomorrow/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ importance: 5
22

33
---
44

5-
# How many seconds till tomorrow?
5+
# Wie viele Sekunden bis morgen?
66

7-
Create a function `getSecondsToTomorrow()` that returns the number of seconds till tomorrow.
7+
Erstelle eine Funktion `getSecondsToTomorrow()`, die die Anzahl der Sekunden bis morgen zurückgibt.
88

9-
For instance, if now is `23:00`, then:
9+
Zum Beispiel, wenn es jetzt `23:00` ist, dann:
1010

1111
```js
1212
getSecondsToTomorrow() == 3600
1313
```
1414

15-
P.S. The function should work at any day, the "today" is not hardcoded.
15+
P.S. Die Funktion sollte an jedem Tag funktionieren, das "heute" ist nicht fest einprogrammiert.

1-js/05-data-types/11-date/8-format-date-relative/solution.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
1-
To get the time from `date` till now -- let's substract the dates.
1+
Um die Zeit von `date` bis jetzt zu bekommen -- lass uns die Daten subtrahieren.
22

33
```js run demo
44
function formatDate(date) {
5-
let diff = new Date() - date; // the difference in milliseconds
5+
let diff = new Date() - date; // der Unterschied in Millisekunden
66

7-
if (diff < 1000) { // less than 1 second
7+
if (diff < 1000) { // weniger als 1 Sekunde
88
return 'right now';
99
}
1010

11-
let sec = Math.floor(diff / 1000); // convert diff to seconds
11+
let sec = Math.floor(diff / 1000); // diff in Sekunden umwandeln
1212

1313
if (sec < 60) {
1414
return sec + ' sec. ago';
1515
}
1616

17-
let min = Math.floor(diff / 60000); // convert diff to minutes
17+
let min = Math.floor(diff / 60000); // diff in Minuten umwandeln
1818
if (min < 60) {
1919
return min + ' min. ago';
2020
}
2121

22-
// format the date
23-
// add leading zeroes to single-digit day/month/hours/minutes
22+
// das Datum formatieren
23+
// führende Nullen zu einstelligen Tagen/Monaten/Stunden/Minuten hinzufügen
2424
let d = date;
2525
d = [
2626
'0' + d.getDate(),
2727
'0' + (d.getMonth() + 1),
2828
'' + d.getFullYear(),
2929
'0' + d.getHours(),
3030
'0' + d.getMinutes()
31-
].map(component => component.slice(-2)); // take last 2 digits of every component
31+
].map(component => component.slice(-2)); // die letzten 2 Ziffern jeder Komponente nehmen
3232

33-
// join the components into date
33+
// die Komponenten zu einem Datum zusammenfügen
3434
return d.slice(0, 3).join('.') + ' ' + d.slice(3).join(':');
3535
}
3636

@@ -40,11 +40,11 @@ alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30 sec. ago"
4040

4141
alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5 min. ago"
4242

43-
// yesterday's date like 31.12.2016 20:00
43+
// das gestrige Datum wie 31.12.2016 20:00
4444
alert( formatDate(new Date(new Date - 86400 * 1000)) );
4545
```
4646

47-
Alternative solution:
47+
Alternative Lösung:
4848

4949
```js run
5050
function formatDate(date) {
@@ -58,7 +58,7 @@ function formatDate(date) {
5858
let diffMin = diffSec / 60;
5959
let diffHour = diffMin / 60;
6060

61-
// formatting
61+
// Formatierung
6262
year = year.toString().slice(-2);
6363
month = month < 10 ? '0' + month : month;
6464
dayOfMonth = dayOfMonth < 10 ? '0' + dayOfMonth : dayOfMonth;
@@ -76,3 +76,4 @@ function formatDate(date) {
7676
}
7777
}
7878
```
79+

1-js/05-data-types/11-date/8-format-date-relative/task.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ importance: 4
22

33
---
44

5-
# Format the relative date
5+
# Das relative Datum formatieren
66

7-
Write a function `formatDate(date)` that should format `date` as follows:
7+
Schreibe eine Funktion `formatDate(date)`, die das Datum `date` wie folgt formatieren soll:
88

9-
- If since `date` passed less than 1 second, then `"right now"`.
10-
- Otherwise, if since `date` passed less than 1 minute, then `"n sec. ago"`.
11-
- Otherwise, if less than an hour, then `"m min. ago"`.
12-
- Otherwise, the full date in the format `"DD.MM.YY HH:mm"`. That is: `"day.month.year hours:minutes"`, all in 2-digit format, e.g. `31.12.16 10:00`.
9+
- Wenn seit `date` weniger als 1 Sekunde vergangen ist, dann `"right now"`.
10+
- Ansonsten, wenn seit `date` weniger als 1 Minute vergangen ist, dann `"n sec. ago"`.
11+
- Ansonsten, wenn weniger als eine Stunde vergangen ist, dann `"m min. ago"`.
12+
- Andernfalls das vollständige Datum im Format `"TT.MM.JJ HH:mm"`. Das heißt: `"Tag.Monat.Jahr Stunden:Minuten"`, alles im 2-Ziffern-Format, z.B. `31.12.16 10:00`.
1313

14-
For instance:
14+
Zum Beispiel:
1515

1616
```js
1717
alert( formatDate(new Date(new Date - 1)) ); // "right now"
@@ -20,6 +20,6 @@ alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30 sec. ago"
2020

2121
alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5 min. ago"
2222

23-
// yesterday's date like 31.12.16 20:00
23+
// Das Datum von gestern wie 31.12.16 20:00
2424
alert( formatDate(new Date(new Date - 86400 * 1000)) );
2525
```

0 commit comments

Comments
 (0)