Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Date and Time#168

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
Show all changes
17 commits
Select commitHold shift + click to select a range
6b59129
date and time
MykolaSopihaJul 31, 2021
c8ec4ba
Update 1-js/05-data-types/11-date/6-get-seconds-today/solution.md
tarasyyykAug 4, 2021
23e1fad
Update 1-js/05-data-types/11-date/2-get-week-day/solution.md
tarasyyykAug 4, 2021
6d60951
Update 1-js/05-data-types/11-date/8-format-date-relative/solution.md
tarasyyykAug 4, 2021
f2b83e0
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
390e529
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
70df998
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
e17b350
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
fe71573
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
7ce25ba
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
644fb96
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
797f76c
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
34d5cd2
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
69f8e68
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
4f02d03
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
28a6454
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
72607cc
Update 1-js/05-data-types/11-date/article.md
tarasyyykAug 4, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions1-js/05-data-types/11-date/1-new-date/solution.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
The `new Date`constructor uses the local time zone. So the only important thing to remember is that months start from zero.
Конструктор `new Date`використовує місцевий часовий пояс. Отже, єдина важлива річ, яку слід пам’ятати це те, що місяці починаються з нуля.

So February has number 1.
Тому лютий має номер 1.

Here's an example with numbers as date components:
Ось приклад з номерами як компонентам дати:

```js run
//new Date(year, month, date, hour, minute, second, millisecond)
let d1 = new Date(2012, 1, 20, 3, 12);
alert( d1 );
```
We could also create a date from a string, like this:
Ми також можемо створити дату з рядка, як наприклад:

```js run
//new Date(datastring)
Expand Down
6 changes: 3 additions & 3 deletions1-js/05-data-types/11-date/1-new-date/task.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,8 +2,8 @@ importance: 5

---

#Create a date
#Створити дату

Create a `Date`object for the date: Feb 20,2012, 3:12am. The time zone is local.
Створити об’єкт `Date`на дату: 20 лютого2012, 3:12 ранку. Часовий пояс є місцевим.

Show it using `alert`.
Показати його за допомогою `alert`.
10 changes: 5 additions & 5 deletions1-js/05-data-types/11-date/2-get-week-day/solution.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
The method`date.getDay()`returns the number of the weekday, starting from sunday.
Метод`date.getDay()`повертає номер робочого дня, починаючи з неділі.

Let's make an array of weekdays, so that we can get the proper day name by its number:
Зробімо масив буднів, щоб ми могли отримати відповідну назву дня за номером:

```js run demo
function getWeekDay(date) {
let days = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];
let days = ['НД', 'ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ'];

return days[date.getDay()];
}

let date = new Date(2014, 0, 3); // 3Jan 2014
alert( getWeekDay(date) ); //FR
let date = new Date(2014, 0, 3); // 3січня 2014
alert( getWeekDay(date) ); //ПТ
```
10 changes: 5 additions & 5 deletions1-js/05-data-types/11-date/2-get-week-day/task.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,13 +2,13 @@ importance: 5

---

#Show a weekday
#Показати робочий день

Write a function`getWeekDay(date)` to show the weekday in short format: 'MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'.
Напишіть функцію`getWeekDay(date)`, щоб показати робочий день у короткому форматі: 'ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ', 'НД'.

For instance:
Наприклад:

```js no-beautify
let date = new Date(2012, 0, 3); // 3Jan 2012
alert( getWeekDay(date) ); //should output "TU"
let date = new Date(2012, 0, 3); // 3січня 2012
alert( getWeekDay(date) ); //повинно виводити "ВТ"
```
8 changes: 4 additions & 4 deletions1-js/05-data-types/11-date/3-weekday/task.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,11 +2,11 @@ importance: 5

---

#European weekday
#Європейський робочий день

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`.
Європейські країни мають дні тижня, що починаються з понеділка (№ 1),потім вівторок (№ 2)та до неділі (№ 7).Напишіть функцію`getLocalDay(date)`, що повертає "європейський" день тижня для `date`.

```js no-beautify
let date = new Date(2012, 0, 3); // 3Jan 2012
alert( getLocalDay(date) ); //tuesday, should show 2
let date = new Date(2012, 0, 3); // 3січня 2012
alert( getLocalDay(date) ); //вівторок, слід показати 2
```
12 changes: 6 additions & 6 deletions1-js/05-data-types/11-date/4-get-date-ago/solution.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
The idea is simple: to substract given number of days from `date`:
Ідея проста: відняти від `date` дане число кількості днів:

```js
function getDateAgo(date, days) {
Expand All@@ -7,9 +7,9 @@ function getDateAgo(date, days) {
}
```

...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.
...Але функція не повинна змінювати`date`.Це важливо, тому що зовнішній код, який дає нам дату, не очікує, що вона зміниться.

To implement it let's clone the date, like this:
Щоб реалізувати це, клонуймо дату, наступним чином:

```js run demo
function getDateAgo(date, days) {
Expand All@@ -21,7 +21,7 @@ function getDateAgo(date, days) {

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

alert( getDateAgo(date, 1) ); // 1, (1Jan 2015)
alert( getDateAgo(date, 2) ); // 31, (31Dec 2014)
alert( getDateAgo(date, 365) ); // 2, (2Jan 2014)
alert( getDateAgo(date, 1) ); // 1, (1січня 2015)
alert( getDateAgo(date, 2) ); // 31, (31грудня 2014)
alert( getDateAgo(date, 365) ); // 2, (2січня 2014)
```
16 changes: 8 additions & 8 deletions1-js/05-data-types/11-date/4-get-date-ago/task.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,20 +2,20 @@ importance: 4

---

#Which day of month was many days ago?
#Який день місяця був багато днів тому?

Create a function`getDateAgo(date, days)` to return the day of month `days`ago from the `date`.
Створіть функцію`getDateAgo(date, days)`, щоб повернути день місяця, який був `days`днів після `date`.

For instance, if today is 20th, then `getDateAgo(new Date(), 1)`should be 19th and `getDateAgo(new Date(), 2)`should be 18th.
Наприклад, якщо сьогодні -- 20-й, то `getDateAgo(new Date(), 1)`має бути 19-го, а `getDateAgo(new Date(), 2)`має бути 18-го.

Should work reliably for `days=365`or more:
Має працювати надійно для `days =365`або більше:

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

alert( getDateAgo(date, 1) ); // 1, (1Jan 2015)
alert( getDateAgo(date, 2) ); // 31, (31Dec 2014)
alert( getDateAgo(date, 365) ); // 2, (2Jan 2014)
alert( getDateAgo(date, 1) ); // 1, (1січня 2015)
alert( getDateAgo(date, 2) ); // 31, (31грудня 2014)
alert( getDateAgo(date, 365) ); // 2, (2січня 2014)
```

P.S.The function should not modify the given `date`.
P.S.Функція не повинна змінювати `date`.
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
Let's create a date using the next month, but pass zero as the day:
Створімо дату, використовуючи наступний місяць, але передамо нуль, як день:
```js run demo
function getLastDayOfMonth(year, month) {
let date = new Date(year, month + 1, 0);
Expand All@@ -10,4 +10,4 @@ alert( getLastDayOfMonth(2012, 1) ); // 29
alert( getLastDayOfMonth(2013, 1) ); // 28
```

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".
Зазвичай дати починаються з 1,але технічно ми можемо передати будь-яке число, дата автоматично відрегулює себе. Отже, коли ми передаємо 0,то це означає "за день до 1-го дня місяця",іншими словами: "останній день попереднього місяця".
12 changes: 6 additions & 6 deletions1-js/05-data-types/11-date/5-last-day-of-month/task.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,13 +2,13 @@ importance: 5

---

#Last day of month?
#Останній день місяця?

Write a function`getLastDayOfMonth(year, month)` that returns the last day of month. Sometimes it is 30th, 31st or even 28/29th for Feb.
Напишіть функцію`getLastDayOfMonth(year, month)`, що повертає останній день місяця. Іноді це 30-е, 31-ше або навіть 28/29-е для лютого.

Parameters:
Параметри:

- `year` --four-digits year, for instance 2012.
- `month` --month, from 0 to 11.
- `year` --чотиризначний рік, наприклад 2012.
- `month` --місяць, від 0 to 11.

For instance, `getLastDayOfMonth(2012, 1) = 29` (leap year, Feb).
Наприклад, `getLastDayOfMonth(2012, 1) = 29` (високосний рік, лютий).
12 changes: 6 additions & 6 deletions1-js/05-data-types/11-date/6-get-seconds-today/solution.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
To get the number of seconds, we can generate a date using the current day and time00:00:00,then substract it from "now".
Щоб отримати кількість секунд, ми можемо створити дату, використовуючи поточний день та час00:00:00,а потім відняти його від "зараз".

The difference is the number of milliseconds from the beginning of the day, that we should divide by 1000 to get seconds:
Різниця -- це кількість мілісекунд з початку дня, яку ми повинні розділити на 1000, щоб отримати секунди:

```js run
function getSecondsToday() {
let now = new Date();

//create an object using the current day/month/year
//створити об’єкт, використовуючи поточний день/місяць/рік
let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());

let diff = now - today; //ms difference
return Math.round(diff / 1000); //make seconds
let diff = now - today; //мс різниця
return Math.round(diff / 1000); //зробити секунди
}

alert( getSecondsToday() );
```

An alternative solution would be to get hours/minutes/seconds and convert them to seconds:
Альтернативне рішення полягає в тому, щоб отримати години/хвилини/секунди та конвертувати їх до секунд:

```js run
function getSecondsToday() {
Expand Down
8 changes: 4 additions & 4 deletions1-js/05-data-types/11-date/6-get-seconds-today/task.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,14 +2,14 @@ importance: 5

---

#How many seconds have passed today?
#Скільки секунд пройшло сьогодні?

Write a function`getSecondsToday()` that returns the number of seconds from the beginning of today.
Напишіть функцію`getSecondsToday()`, що повертає кількість секунд з початку сьогоднішнього дня.

For instance, if now were`10:00 am`,and there was no daylight savings shift, then:
Наприклад, якщо зараз`10:00 am`,і не було зміни літнього часу, то:

```js
getSecondsToday() == 36000 // (3600 * 10)
```

The function should work in any day. That is, it should not have a hard-coded value of "today".
Функція повинна працювати в будь-який день. Тобто, вона не повинна мати жорстко-кодоване значення "сьогодні".
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
To get the number of milliseconds till tomorrow, we can from "tomorrow 00:00:00"substract the current date.
Щоб отримати кількість мілісекунд до завтра, ми можемо від "завтра 00:00:00"відняти поточну дату.

First, we generate that "tomorrow",and then do it:
По-перше, ми створюємо це "завтра",а потім віднімемо:

```js run
function getSecondsToTomorrow() {
let now = new Date();

//tomorrow date
//завтрашня дата
let tomorrow = new Date(now.getFullYear(), now.getMonth(), *!*now.getDate()+1*/!*);

let diff = tomorrow - now; //difference in ms
return Math.round(diff / 1000); //convert to seconds
let diff = tomorrow - now; //різниця в мс
return Math.round(diff / 1000); //перетворити до секунд
}
```

Expand All@@ -29,4 +29,4 @@ function getSecondsToTomorrow() {
}
```

Please note that many countries have Daylight Savings Time (DST), so there may be days with23or 25hours. We may want to treat such days separately.
Будь ласка, зверніть увагу, що у багатьох країнах є літній час, тому можуть бути дні з23або 25годин. Ми можемо обробляти такі дні окремо.
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,14 +2,14 @@ importance: 5

---

#How many seconds till tomorrow?
#Скільки секунд до завтра?

Create a function`getSecondsToTomorrow()` that returns the number of seconds till tomorrow.
Створіть функцію`getSecondsToTomorrow()`, що повертає кількість секунд до завтра.

For instance, if now is `23:00`,then:
Наприклад, якщо зараз є `23:00`,то:

```js
getSecondsToTomorrow() == 3600
```

P.S.The function should work at any day, the "today" is not hardcoded.
P.S.Функція повинна працювати в будь-який день, "сьогодні" не є жорстко закодованим.
42 changes: 21 additions & 21 deletions1-js/05-data-types/11-date/8-format-date-relative/solution.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
To get the time from`date`till now--let's substract the dates.
Щоб отримати час від`date`дотепер--давайте віднімемо дати.

```js run demo
function formatDate(date) {
let diff = new Date() - date; //the difference in milliseconds
let diff = new Date() - date; //різниця в мілісекундах

if (diff < 1000) { //less than 1 second
return 'right now';
if (diff < 1000) { //менше 1 секунди
return 'прямо зараз';
}

let sec = Math.floor(diff / 1000); //convert diff to seconds
let sec = Math.floor(diff / 1000); //перетворити різницю до секунд

if (sec < 60) {
return sec + 'sec. ago';
return sec + 'сек. назад';
}

let min = Math.floor(diff / 60000); //convert diff to minutes
let min = Math.floor(diff / 60000); //перетворити різницю до хвилин
if (min < 60) {
return min + 'min. ago';
return min + 'хв. назад';
}

//format the date
//add leading zeroes to single-digit day/month/hours/minutes
//форматувати дату
//додати нулі до однозначних днів/місяців/годин/хвилин
let d = date;
d = [
'0' + d.getDate(),
'0' + (d.getMonth() + 1),
'' + d.getFullYear(),
'0' + d.getHours(),
'0' + d.getMinutes()
].map(component => component.slice(-2)); //take last 2digits of every component
].map(component => component.slice(-2)); //отримати останні 2цифри кожного компоненту

//join the components into date
//з’єднати компоненти в дату
return d.slice(0, 3).join('.') + ' ' + d.slice(3).join(':');
}

alert( formatDate(new Date(new Date - 1)) ); // "right now"
alert( formatDate(new Date(new Date - 1)) ); // "прямо зараз"

alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30sec. ago"
alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30сек. назад"

alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5min. ago"
alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5хв. назад"

//yesterday's date like 31.12.2016 20:00
//вчорашня дата, як 31.12.2016 20:00
alert( formatDate(new Date(new Date - 86400 * 1000)) );
```

Alternative solution:
Альтернативне рішення:

```js run
function formatDate(date) {
Expand All@@ -58,19 +58,19 @@ function formatDate(date) {
let diffMin = diffSec / 60;
let diffHour = diffMin / 60;

//formatting
//форматування
year = year.toString().slice(-2);
month = month < 10 ? '0' + month : month;
dayOfMonth = dayOfMonth < 10 ? '0' + dayOfMonth : dayOfMonth;
hour = hour < 10 ? '0' + hour : hour;
minutes = minutes < 10 ? '0' + minutes : minutes;

if (diffSec < 1) {
return 'right now';
return 'прямо зараз';
} else if (diffMin < 1) {
return `${diffSec}sec. ago`
return `${diffSec}сек. назад`
} else if (diffHour < 1) {
return `${diffMin}min. ago`
return `${diffMin}хв. назад`
} else {
return `${dayOfMonth}.${month}.${year} ${hour}:${minutes}`
}
Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp