help in calculating the no. of days between the two dates

Discussion in 'Programming' started by thecreativeboy, Jun 27, 2009.

Thread Status:
Not open for further replies.
  1. thecreativeboy

    thecreativeboy New Member

    Joined:
    Jun 25, 2007
    Messages:
    133
    Likes Received:
    0
    Trophy Points:
    0
    hi
    i want the javascript code for to find out the no. of dates between the two dates.for example
    in the form
    the first input is 12-jun-2008
    the second input is 14-feb-2009

    so the output will be difference between the two.(in month and days)
     
  2. RCuber

    RCuber The Mighty Unkel!!!

    Joined:
    Sep 7, 2004
    Messages:
    7,104
    Likes Received:
    12
    Trophy Points:
    38
    Location:
    ಬೆಂಗಳೂರು (Bengaluru)
    Here you go Link
     
  3. Kl@w-24

    Kl@w-24 Slideshow Bob

    Joined:
    Apr 2, 2004
    Messages:
    1,703
    Likes Received:
    1
    Trophy Points:
    38
    LOL!!! Copying someone else's work and changing the author's name to your own!! Nice! :lol: :D

    Here's the original source:

    http://javascript.internet.com/math-related/date-difference.html

    ANd the ORIGINAL code:

    Code:
    <!-- TWO STEPS TO INSTALL DATE DIFFERENCE:
    
      1.  Copy the coding into the HEAD of your HTML document
      2.  Add the last code into the BODY of your HTML document  -->
    
    <!-- STEP ONE: Paste this code into the HEAD of your HTML document  -->
    
    <HEAD>
    
    <SCRIPT LANGUAGE="JavaScript">
    <!-- Original:  Ronnie T. Moore -->
    <!-- Web Site:  The JavaScript Source -->
    
    <!-- This script and many more are available free online at -->
    <!-- The JavaScript Source!! http://javascript.internet.com -->
    
    <!-- Begin
    function isValidDate(dateStr) {
    // Date validation function courtesty of 
    // Sandeep V. Tamhankar (stamhankar@hotmail.com) -->
    
    // Checks for the following valid date formats:
    // MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
    
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
    
    var matchArray = dateStr.match(datePat); // is the format ok?
    if (matchArray == null) {
    alert(dateStr + " Date is not in a valid format.")
    return false;
    }
    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[4];
    if (month < 1 || month > 12) { // check month range
    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) { // check for february 29th
    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) {
    // Time validation function courtesty of 
    // Sandeep V. Tamhankar (stamhankar@hotmail.com) -->
    
    // Checks if time is in HH:MM:SS AM/PM format.
    // The seconds and AM/PM are optional.
    
    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; // otherwise exits
    
    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; // otherwise exits
    
    // sets difference date to difference of first date and second date
    
    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 + " weeks, " + days + " days, " + hours + " hours, " + mins + " minutes, and " + secs + " seconds";
    
    return false; // form should never submit, returns false
    }
    //  End -->
    </script>
    </HEAD>
    
    <!-- STEP TWO: Copy this code into the BODY of your HTML document  -->
    
    <BODY>
    
    <center>
    <form onSubmit="return dateDiff(this);">
    <table>
    <tr><td>
    <pre>
    First Date:   Date: <input type=text name=firstdate value="" size=10 maxlength=10>  (MM/DD/YYYY format)
                  Time: <input type=text name=firsttime value="" size=10 maxlength=10>  (HH:MM:SS format)
    
    Second Date:  Date: <input type=text name=seconddate value="" size=10 maxlength=10>  (MM/DD/YYYY format)
                  Time: <input type=text name=secondtime value="" size=10 maxlength=10>  (HH:MM:SS format)
    
    <center><input type=submit value="Calculate Difference!">
    
    Date Difference:<br>
    <input type=text name=difference value="" size=60>
    </center>
    </pre>
    </td></tr>
    </table>
    </form>
    </center>
    
    <p><center>
    <font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
    by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
    </center><p>
    
    <!-- Script Size:  5.13 KB -->
    :mad:
     
Thread Status:
Not open for further replies.

Share This Page