class Event { #dateString = ""; constructor(name, dateString) { this.name = name; this.date = new Date(dateString); this.#dateString = dateString; } get hasName() { return this.name.length > 0; } get hasDate() { return this.#dateString.length > 0; } get isValidDate() { return this.date != "Invalid Date"; } get days() { // calculate days const today = new Date(); const msFromToday = this.date.getTime() - today.getTime(); const msForOneDay = 24 * 60 * 60 * 1000; // hrs * mins * secs * milliseconds const daysToDate = Math.ceil( msFromToday / msForOneDay ); return daysToDate; } get message() { let msg = ""; if (this.days == 0) { msg = `Hooray! Today is ${this.name}! (${this.date.toDateString()})`; } else if (this.days > 0) { msg = `${this.days} day(s) until ${this.name}! (${this.date.toDateString()})`; } else if (this.days < 0) { msg = `${this.name} happened ${Math.abs(this.days)} day(s) ago. (${this.date.toDateString()})`; } return msg; } } export default Event;