javascript-learner/5.10Dateandtime/t.js
2024-06-22 12:02:50 +02:00

127 lines
4.0 KiB
JavaScript

console.log("====================Date and Time====================");
console.log("Date and time are created using new Date() constructor");
console.log("No arguments - current date and time");
let now = new Date();
console.log(now);
console.log("Date(milliseconds) - creates a date object for the given milliseconds since Jan 1, 1970 UTC+0");
let Jan01_1970 = new Date(0);
console.log(Jan01_1970);
console.log("add 24 hours to it");
let Jan02_1970 = new Date(24 * 3600 * 1000);
console.log(Jan02_1970);
console.log("Date(string) - creates a date object from the string");
console.log(new Date("2017-01-26"));
console.log("new Date(year, month, date, hours, minutes, seconds, ms) - create a date with the given components in the local time zone");
console.log(new Date(2011, 0, 1, 0, 0, 0, 0));
console.log("Date methods");
console.log("getFullYear() - get the year (4 digits)");
console.log(now.getFullYear());
console.log("getMonth() - get the month, from 0 to 11");
console.log(now.getMonth());
console.log("getDate() - get the day of the month, from 1 to 31");
console.log(now.getDate());
console.log("getHours(), getMinutes(), getSeconds(), getMilliseconds()");
console.log(now.getHours());
console.log("getDay() - get the day of the week, from 0(Sunday) to 6(Saturday)");
console.log(now.getDay());
console.log("getTime() - returns the timestamp for the date - the number of milliseconds passed from the January 1, 1970 UTC+0");
console.log(now.getTime());
console.log("getTimezoneOffset() - returns the difference between UTC and the local timezone in minutes");
console.log(now.getTimezoneOffset());
console.log("setFullYear(year, [month], [date]) - set the year");
console.log(now.setFullYear(2020));
console.log(now);
console.log("setMonth(month, [date]) - set the month");
console.log(now.setMonth(0));
console.log(now);
console.log("setDate(date) - set the day of the month");
console.log(now.setDate(1));
console.log(now);
console.log("automatic correction");
let date = new Date(2013, 0, 32);
console.log(date);
date.setDate(date.getDate() + 2);
console.log(date);
date.setSeconds(date.getSeconds() + 70);
console.log("Date can be subtracted from each other");
let start = new Date();
for (let i = 0; i < 100000; i++){
let doSomething = i * i * i;
}
let end = new Date();
console.log(`The loop took ${end - start} ms`);
console.log("Date.now() - returns the current timestamp");
console.log(Date.now());
function diffSubtract(date1, date2){
return date2 - date1;
}
function diffGetTime(date1, date2) {
return date2.getTime() - date1.getTime();
}
console.log("Performance of the two methods");
function bench(f){
let date1 = new Date(0);
let date2 = new Date();
let start = Date.now();
for (let i = 0; i < 100000; i++){
f(date1, date2);
}
return Date.now() - start;
}
console.log(`Time of diffSubtract: ${bench(diffSubtract)} ms`);
console.log(`Time of diffGetTime: ${bench(diffGetTime)} ms`);
console.log("Date.parse(datestring) - returns timestamp");
console.log(Date.parse("2012-01-26T13:51:50.417-07:00"));
console.log("Task1 - Create a date");
let date1 = new Date(2012, 1, 20, 3, 12);
console.log(date1)
function getWeekDay(date){
day = date.getDay();
m = {
1: 'MO',
2: 'TU',
3: 'WE',
4: 'TH',
5: 'FR',
6: 'SA',
7: 'SU',
}
return m[day];
}
date = new Date(2012, 0, 3);
console.log(getWeekDay(date))
function getDateAgo(date, days){
return new Date(date.getTime() - days * 24 * 3600 * 1000);
}
date = new Date(2015, 0, 2);
console.log(getDateAgo(date, 1))
console.log(getDateAgo(date, 2))
console.log(getDateAgo(date, 365))
function getLastDayOfMonth(year, month){
let date1 = new Date(year, month + 1, 0, 0, 0, 0, 0);
return new Date(date1.setDate(date1.getDate() )).getDate()
}
console.log(getLastDayOfMonth(2012, 1))
function getSecondsToday(){
let date = new Date()
return date.getHours() * 3600 + date.getMinutes() * 60 + date.getSeconds();
}
console.log(getSecondsToday());