const Command = require('../../structures/Command'); const moment = require('moment'); require('moment-duration-format'); module.exports = class DaysUntilCommand extends Command { constructor(client) { super(client, { name: 'days-until', group: 'events', memberName: 'days-until', description: 'Responds with how many days there are until a certain date.', args: [ { key: 'month', prompt: 'What month would you like to get the days until?', type: 'month' }, { key: 'day', prompt: 'What day would you like to get the days until?', type: 'integer', min: 1, max: 31 } ] }); } run(msg, { month, day }) { const now = new Date(); let year = now.getMonth() + 1 <= month ? now.getFullYear() : now.getFullYear() + 1; if (month === now.getMonth() + 1 && now.getDate() >= day) ++year; const future = new Date(`${month}/${day}/${year}`); const time = moment.duration(future - now).format('M [months and] d [days]'); if (time === 'Invalid date') return msg.reply('Invalid date.'); return msg.say(`There are ${time} until ${moment.utc(future).format('dddd, MMMM Do, YYYY')}!`); } };