繁体   English   中英

如果当前日期是用户的生日,如何验证年龄并发出警报?

[英]How to validate age and alert if the current date is the user's birthday?

好的,我是Java语言的新手(大约2个月前开始在我的计算机课上学习),我正在做一项作业,该作业需要一个包含出生日期的表格(下拉菜单中分别包含日期/月份/年份)和我需要能够:

a)确认用户已年满18岁,如果没有,请发送警报。

和;

b)如果当前日期是用户的生日,则提供“生日快乐”消息

我一直在不懈地寻找解决方案,但找不到我能理解的解决方案。 到目前为止,这是我得到的:

    <form name="contest">
    Date of Birth:
    Year: <select name="year">
            <option></option>
            <option>2015</option>
            <option>2014</option>
            <option>2013</option>
            <option>2012</option>
            <option>2011</option>
            <option>2010</option>
            <option>2009</option>
            <option>2008</option>
            <option>2007</option>
            <option>2006</option>
            <option>2005</option>
            <option>2004</option>
            <option>2003</option>
            <option>2002</option>
            <option>2001</option>
            <option>2000</option>
            <option>1999</option>
            <option>1998</option>
            <option>1997</option>
            <option>1996</option>
            <option>1995</option>
            <option>1994</option>
            <option>1993</option>
            <option>1992</option>
            <option>1991</option>
            <option>1990</option>
        </select>
    Month: <select name="month">
            <option></option>
            <option value="jan">January</option>
            <option value="feb">February</option>
            <option value="mar">March</option>
            <option value="apr">April</option>
            <option value="may">May</option>
            <option value="jun">June</option>
            <option value="jul">July</option>
            <option value="aug">August</option>
            <option value="sep">September</option>
            <option value="oct">October</option>
            <option value="nov">November</option>
            <option value="dec">December</option>
        </select>
    Day: <select name="day">
            <option></option>
            <option>01</option>
            <option>02</option>
            <option>03</option>
            <option>04</option>
            <option>05</option>
            <option>06</option>
            <option>07</option>
            <option>08</option>
            <option>09</option>
            <option>10</option>
            <option>11</option>
            <option>12</option>
            <option>13</option>
            <option>14</option>
            <option>15</option>
            <option>16</option>
            <option>17</option>
            <option>18</option>
            <option>19</option>
            <option>20</option>
            <option>21</option>
            <option>22</option>
            <option>23</option>
            <option>24</option>
            <option>25</option>
            <option>26</option>
            <option>27</option>
            <option>28</option>
            <option>29</option>
            <option>30</option>
            <option>31</option>
        </select>

    <input type="button" name="" onClick="checkInput(this.form)" value="Submit"/>
    <input type="reset"/>
</form>

任何帮助将不胜感激! 谢谢 :)

直截了当。

function checkInput()
{
  // get today's date.
  var today = new Date();
  today.setHours(0,0,0,0); // set time to start of day for comparison.

  // create a new date based on user input.
  var bdate = new Date(Date.parse( 
    document.querySelector('select[name="year"]').value + ' ' +
    document.querySelector('select[name="month"]').value + ' ' +
    document.querySelector('select[name="day"]').value
  ));
  today.setYear(0); // ignore year part of date.
  bdate.setYear(0); // ignore year part of date.

  if (today.valueOf() == bdate.valueOf())
  {
    alert('Happy Birthday');
  }
  else
  {
    alert('Merry Unbirthday.');
  }
}

在您的函数(checkInput)中,您需要检查当前日期是否与用户指定的日期相等。 您可以通过以下方式获取当前日期:

 var today = new Date(); var day = today.getDate(); var month = today.getMonth()+1; // +1 Because january is 0 var year = today.getFullYear(); 

然后比较容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM