dataFunction

by Olga Zhizhka

JavaScript

function dimensionTime() {

    var userDate  = prompt("Введите дату в данном формате: 01.01.2001",'01.01.2001'),
        oneDay = 1000*60*60*24,
        residualDates,
        residualDatesAbs,
        lastDigit,
        convertedDate,
        dayName,
        currentDate = new Date();

    function validateDate(date){
        var tempArr;
        if(date) {
            tempArr = date.split(".");
            if(tempArr.length != 3) {
                return false;
            }
            tempArr[1] -= 1;
            convertedDate = new Date(tempArr[2], tempArr[1], tempArr[0]);
            if (!((convertedDate.getFullYear() == tempArr[2])
                && (convertedDate.getMonth() == tempArr[1])
                && (convertedDate.getDate() == tempArr[0]))) {
                    return false;
            }
        } else {
            return false;
        }
        return true;
    };
    
    if(validateDate(userDate)) {
        residualDates = Math.floor((currentDate.getTime() - convertedDate.getTime())/oneDay);
        residualDatesAbs =  Math.abs(residualDates);
        lastDigit = Math.floor(residualDatesAbs%10);
        switch(lastDigit) {
            case 1:
                dayName = ' день';
                break;
            case 2:
            case 3:
            case 4:
                dayName = ' дня';
                break;
            default:
                dayName = ' дней';
                break;
        };

        if(residualDates > 0){
            alert('С ' + userDate + ' прошло ' + residualDates + dayName);
        } else {
            alert('До ' + userDate + ' осталось ' + residualDatesAbs + dayName);
        }
    } else {
        alert('Не корректная дата');
        dimensionTime();
    };
}
dimensionTime();