11.09.2009, 12:56 | |||||
Расчет недель, дней и т.д. до даты![]() Этот калькулятор поможет вам расчитать, сколько недель, дней, часов и минут между двумя, введенными вами, датами. Вам просто необходимо заполнить поля и нажать кнопку "Расчитать". Для установки необходимо поставить этот скрипт в head:
Code <SCRIPT LANGUAGE="JavaScript"> <!-- Begin function isValidDate(dateStr) { var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; var matchArray = dateStr.match(datePat); if (matchArray == null) { alert(dateStr + " Date is not in a valid format.") return false; } month = matchArray[1]; day = matchArray[3]; year = matchArray[4]; if (month < 1 || month > 12) { alert("Month must be between 1 and 12."); return false; } if (day < 1 || day > 31) { alert("Day must be between 1 and 31."); return false; } if ((month==4 || month==6 || month==9 || month==11) && day==31) { alert("Month "+month+" doesn't have 31 days!") return false; } if (month == 2) { var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); if (day>29 || (day==29 && !isleap)) { alert("February " + year + " doesn't have " + day + " days!"); return false; } } return true; } function isValidTime(timeStr) { var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/; var matchArray = timeStr.match(timePat); if (matchArray == null) { alert("Time is not in a valid format."); return false; } hour = matchArray[1]; minute = matchArray[2]; second = matchArray[4]; ampm = matchArray[6]; if (second=="") { second = null; } if (ampm=="") { ampm = null } if (hour < 0 || hour > 23) { alert("Hour must be between 1 and 12. (or 0 and 23 for military time)"); return false; } if (hour <= 12 && ampm == null) { if (confirm("Please indicate which time format you are using. OK = Standard Time, CANCEL = Military Time")) { alert("You must specify AM or PM."); return false; } } if (hour > 12 && ampm != null) { alert("You can't specify AM or PM for military time."); return false; } if (minute < 0 || minute > 59) { alert ("Minute must be between 0 and 59."); return false; } if (second != null && (second < 0 || second > 59)) { alert ("Second must be between 0 and 59."); return false; } return true; } function dateDiff(dateform) { date1 = new Date(); date2 = new Date(); diff = new Date(); if (isValidDate(dateform.firstdate.value) && isValidTime(dateform.firsttime.value)) { // Validates first date date1temp = new Date(dateform.firstdate.value + " " + dateform.firsttime.value); date1.setTime(date1temp.getTime()); } else return false; if (isValidDate(dateform.seconddate.value) && isValidTime(dateform.secondtime.value)) { // Validates second date date2temp = new Date(dateform.seconddate.value + " " + dateform.secondtime.value); date2.setTime(date2temp.getTime()); } else return false; diff.setTime(Math.abs(date1.getTime() - date2.getTime())); timediff = diff.getTime(); weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7)); timediff -= weeks * (1000 * 60 * 60 * 24 * 7); days = Math.floor(timediff / (1000 * 60 * 60 * 24)); timediff -= days * (1000 * 60 * 60 * 24); hours = Math.floor(timediff / (1000 * 60 * 60)); timediff -= hours * (1000 * 60 * 60); mins = Math.floor(timediff / (1000 * 60)); timediff -= mins * (1000 * 60); secs = Math.floor(timediff / 1000); timediff -= secs * 1000; dateform.difference.value = weeks + " недель, " + days + " дней, " + hours + " часов, " + mins + " минут, и " + secs + " секунд"; return false; } // End --> </script> А это - в body:
Code <center> <form onSubmit="return dateDiff(this);"> <table> <tr><td> <pre> Первая дата: Дата: <input type=text name=firstdate value="" size=10 maxlength=10> (ММ/ДД/ГГГГ формат) Время: <input type=text name=firsttime value="" size=10 maxlength=10> (ЧЧ:ММ:СС формат) Вторая дата: Дата: <input type=text name=seconddate value="" size=10 maxlength=10> (ММ/ДД/ГГГГ формат) Время: <input type=text name=secondtime value="" size=10 maxlength=10> (ЧЧ:ММ:СС формат) <center><input type=submit value="Расчитать"> До даты осталось:<br> <input type=text name=difference value="" size=60> </center> </pre> </td></tr> </table> </form> </center> Адаптация и перевод: http://webscripts.ucoz.ru Материал взят с сайта infoscript.ru
| |||||
Категория: JavaScript's | Просмотров: 3627 | Добавил: antisept | Рейтинг: 4.0/1 | | |||||
Теги: |
Пока комментариев нет. Ты можешь быть первым! | |
Кроме того, материал перепечатывали с сайта на сайт, ставили... файл можно найти на Вэбочке (название tables_tablichki_dli_foruma.js).