2017-02-02 31 views
-4

Я очень новый JavaScript, и не могу понять следующее:Customized сообщение, если день рождения в прошлом, сегодня или в будущем в Javascript

1) Запрашивать представить свою полную дату рождения (не только год), а затем рассчитать, если их день рождения уже произошел в этом году, сегодня или будет в этом году.

2) Получить специальное сообщение для отображения в зависимости от этих трех возможных исходов (например,/«Вы уже свой день рождения в этом году», «сегодня свой день рождения», «Ваш день рождения идет вверх»)

I знайте, что это должно быть просто, но я уже пару дней искал его и не могу понять.

То, что я до сих пор:

function getAge(birth){ 
 
    var today = new Date(); 
 
    var nowYear = today.getFullYear(); 
 
    var nowMonth = today.getMonth(); 
 
    var nowDay = today.getDate(); 
 
    
 
    var birthYear = birth.getFullYear(); 
 
    var birthMonth = birth.getMonth(); 
 
    var birthDay = birth.getDate(); 
 
    
 
    var age = nowYear - birthYear; 
 
    var age_month = nowMonth - birthMonth; 
 
    var age_day = nowDay - nowDay - birthDay; 
 
    
 
    if (age_month < nowMonth || age_date < nowday) { 
 
    age = parseInt(age) -1; 
 
    } 
 
    alert("your birthday just happened"); 
 
} 
 

 

+1

У вас есть код, чтобы показать нам? или это спецификация? kk – andrepaulo

+0

ok boss ahah ... –

+0

Поместите соответствующие части вашего кода * текст * в свой вопрос. –

ответ

0

VaguelyExotic Я думаю, что это может помочь вам!

Он предлагает пользователю ввести дату его рождения. сравните месяц + день с текущим месяцем + день и соответственно отобразите сообщение.

EDIT - это более простая версия, которая поможет вам понять шаги, которые необходимо предпринять для решения вашей проблемы. Предполагается, что пользователь всегда правильно вводит дату и не имеет никакого исключения. Поэтому не стесняйтесь улучшать это. Это просто для вас, чтобы начать свою собственную версию.

function getAge(){ 
 
    var today = new Date(); 
 
    var nowYear = today.getFullYear(); 
 
    var nowMonth = today.getMonth(); 
 
    var nowDay = today.getDate(); 
 
    
 
    var birth = prompt("When were you born?", "YYYY-MM-DD"); 
 
    var birth = new Date(parseInt(birth.substring(0,4)),parseInt(birth.substring(5,7))-1,parseInt(birth.substring(8,10))); 
 
    
 
    var birthYear = birth.getFullYear(); 
 
    var birthMonth = birth.getMonth(); 
 
    var birthDay = birth.getDate(); 
 
    
 
    var compBirth = birthMonth.toString() + birthDay.toString(); 
 
    var compToday = nowMonth.toString() + nowDay.toString(); 
 
    
 
    
 
    if(compBirth == compToday) { 
 
    alert('Today is your birthday!'); 
 
    } else if (compBirth > compToday){ 
 
    alert('Your birthday is comming!'); 
 
    } else { 
 
    alert('Happy b-lated day!'); 
 
    } 
 
    
 
} 
 
getAge();

+0

Большое вам спасибо! Код работает отлично, и мне очень нравится, что он чист, и я могу понять большую часть его - я изучу его, чтобы понять, как он работает, но уже имеет смысл. Очень ценится. – vaguelyexotic

+0

Так что, пожалуйста, примите это как ваш ответ;), я был бы признателен. Я рад, что смогу помочь – andrepaulo

 Смежные вопросы

  • Нет связанных вопросов^_^