Before you get pregnant
Pregnancy Center
Calculating Your Due Date
Figuring out your estimated due date is simple. Add 7 days to the first day of your last normal menstrual period. Then count backwards 3 months. That's it!
Here's an example - let's say your last menstrual period started on June 14. Add 7 days to June 14 and it equals June 21. Then count backwards three months and March 21 becomes your estimated due date.
Or, use our calculator below. Fill in the fields in the top 2 rows, hit "Calculate!" and the information in the bottom 3 rows will be automatically generated.
When you start prenatal care, your doctor or midwife may check an ultrasound to confirm your due date. If you’re not sure when your last period started, or if your periods are irregular, the ultrasound may change your due date by a few days.
Calculator-2: Due Date Calculator
function isValidDate(dateStr) { // 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("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 dispDate(dateObj) { month = dateObj.getMonth()+1; month = (month < 10) ? "0" + month : month; day = dateObj.getDate(); day = (day < 10) ? "0" + day : day; year = dateObj.getYear(); if (year < 2000) year += 1900; return (month + "/" + day + "/" + year); } function pregnancyCalc(pregform) { menstrual = new Date(); // creates new date objects ovulation = new Date(); duedate = new Date(); today = new Date(); cycle = 0, luteal = 0; // sets variables to invalid state ==> 0 if (isValidDate(pregform.menstrual.value)) { // Validates menstual date menstrualinput = new Date(pregform.menstrual.value); menstrual.setTime(menstrualinput.getTime()) } else return false; // otherwise exits cycle = (pregform.cycle.value == "" ? 28 : pregform.cycle.value); // defaults to 28 // validates cycle range, from 22 to 45 if (pregform.cycle.value != "" && (pregform.cycle.value < 22 || pregform.cycle.value > 45)) { alert("Your cycle length is either too short or too long for \n" + "calculations to be very accurate! We will still try to \n" + "complete the calculation with the figure you entered. "); } luteal = 14; // defaults to 14 // sets ovulation date to menstrual date + cycle days - luteal days // the '*86400000' is necessary because date objects track time // in milliseconds; 86400000 milliseconds equals one day ovulation.setTime(menstrual.getTime() + (cycle*86400000) - (luteal*86400000)); pregform.conception.value = dispDate(ovulation); // sets due date to ovulation date plus 266 days duedate.setTime(ovulation.getTime() + 266*86400000); pregform.duedate.value = dispDate(duedate); // sets fetal age to 14 + 266 (pregnancy time) - time left var fetalage = 14 + 266 - ((duedate - today) / 86400000); weeks = parseInt(fetalage / 7); // sets weeks to whole number of weeks days = Math.floor(fetalage % 7); // sets days to the whole number remainder // fetal age message, automatically includes 's' on week and day if necessary fetalage = weeks; pregform.fetalage.value = fetalage; return false; // form should never submit, returns false }Last Menstrual Period: | (MM/DD/YYYY) |
Average Length of Cycles: | (22 to 45) |
Estimated Conception: | |
Estimated Due Date: | |
Week of Pregnancy: | |
NOTE: Most doctors and nurses will estimate your due date by starting from your last menstrual period. Therefore, when people refer to what "week" of pregnancy you are in, it is actually counting the two weeks before you get pregnant.
Review Date: 10/22/2008
Reviewed By: Peter J. Chen, MD, Department of Obstetrics & Gynecology, Hospital of the University of Pennsylvania, Philadelphia, PA. Review provided by VeriMed Healthcare Network.


Christie Clinic on University
Christie Clinic on Windsor/Convenient Care
Christie Clinic at Presence Covenant
Christie Clinic in Rantoul
Christie Clinic in Mahomet
Christie Clinic in Danville on Vermilion/Convenient Care
Christie Clinic in Tuscola
CU Sleep
Christie Clinic Cancer Center
Christie Clinic in Urbana/Convenient Care
Convenient Care in County Market (Kirby & Duncan)
Christie Clinic in Danville on Logan
Christie Clinic on Fox Drive
Kirby Medical Group
Christie Clinic on Gregory
The Champaign SurgiCenter