Check for under age
Note: This is using rails core extensions. It'd need to be modified a bit for a pure ruby implementation.
def underage?(birthday) 18.years.ago < birthday end
11304 users tagging and storing useful source code snippets
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world
def underage?(birthday) 18.years.ago < birthday end
public static class Snippets { public static int CalculateAge(DateTime birthdate) { // get the difference in years int years = DateTime.Now.Year - birthdate.Year; // subtract another year if we're before the // birth day in the current year if (DateTime.Now.Month < birthdate.Month || (DateTime.Now.Month == birthdate.Month && DateTime.Now.Day < birthdate.Day)) years--; return years; } }
<?php //calculate years of age (input string: YYYY-MM-DD) function birthday ($birthday){ list($year,$month,$day) = explode("-",$birthday); $year_diff = date("Y") - $year; $month_diff = date("m") - $month; $day_diff = date("d") - $day; if ($day_diff < 0 || $month_diff < 0) $year_diff--; return $year_diff; } ?>
// ---------------------------------------------------------------------------| // qryHowOld | // Description: How old someone is in the format: | // XXX Years XX Months X Weeks X Days | // Birth Date could be specified like Date.UTC(2002,8,16,17,42,0) | // | // Arguments: | // varAsOfDate: as of date | // varBirthDate: birth date | // | function qryHowOld(varAsOfDate, varBirthDate) { var dtAsOfDate; var dtBirth; var dtAnniversary; var intSpan; var intYears; var intMonths; var intWeeks; var intDays; var intHours; var intMinutes; var intSeconds; var strHowOld; // get born date dtBirth = new Date(varBirthDate); // get as of date dtAsOfDate = new Date(varAsOfDate); // if as of date is on or after born date if ( dtAsOfDate >= dtBirth ) { // get time span between as of time and birth time intSpan = ( dtAsOfDate.getUTCHours() * 3600000 + dtAsOfDate.getUTCMinutes() * 60000 + dtAsOfDate.getUTCSeconds() * 1000 ) - ( dtBirth.getUTCHours() * 3600000 + dtBirth.getUTCMinutes() * 60000 + dtBirth.getUTCSeconds() * 1000 ) // start at as of date and look backwards for anniversary // if as of day (date) is after birth day (date) or // as of day (date) is birth day (date) and // as of time is on or after birth time if ( dtAsOfDate.getUTCDate() > dtBirth.getUTCDate() || ( dtAsOfDate.getUTCDate() == dtBirth.getUTCDate() && intSpan >= 0 ) ) { // most recent day (date) anniversary is in as of month dtAnniversary = new Date( Date.UTC( dtAsOfDate.getUTCFullYear(), dtAsOfDate.getUTCMonth(), dtBirth.getUTCDate(), dtBirth.getUTCHours(), dtBirth.getUTCMinutes(), dtBirth.getUTCSeconds() ) ); } // if as of day (date) is before birth day (date) or // as of day (date) is birth day (date) and // as of time is before birth time else { // most recent day (date) anniversary is in month before as of month dtAnniversary = new Date( Date.UTC( dtAsOfDate.getUTCFullYear(), dtAsOfDate.getUTCMonth() - 1, dtBirth.getUTCDate(), dtBirth.getUTCHours(), dtBirth.getUTCMinutes(), dtBirth.getUTCSeconds() ) ); // get previous month intMonths = dtAsOfDate.getUTCMonth() - 1; if ( intMonths == -1 ) intMonths = 11; // while month is not what it is supposed to be (it will be higher) while ( dtAnniversary.getUTCMonth() != intMonths ) // move back one day dtAnniversary.setUTCDate( dtAnniversary.getUTCDate() - 1 ); } // if anniversary month is on or after birth month if ( dtAnniversary.getUTCMonth() >= dtBirth.getUTCMonth() ) { // months elapsed is anniversary month - birth month intMonths = dtAnniversary.getUTCMonth() - dtBirth.getUTCMonth(); // years elapsed is anniversary year - birth year intYears = dtAnniversary.getUTCFullYear() - dtBirth.getUTCFullYear(); } // if birth month is after anniversary month else { // months elapsed is months left in birth year + anniversary month intMonths = (11 - dtBirth.getUTCMonth()) + dtAnniversary.getUTCMonth() + 1; // years elapsed is year before anniversary year - birth year intYears = (dtAnniversary.getUTCFullYear() - 1) - dtBirth.getUTCFullYear(); } // to calculate weeks, days, hours, minutes and seconds // we can take the difference from anniversary date and as of date // get time span between two dates in milliseconds intSpan = dtAsOfDate - dtAnniversary; // get number of weeks intWeeks = Math.floor(intSpan / 604800000); // subtract weeks from time span intSpan = intSpan - (intWeeks * 604800000); // get number of days intDays = Math.floor(intSpan / 86400000); // subtract days from time span intSpan = intSpan - (intDays * 86400000); // get number of hours intHours = Math.floor(intSpan / 3600000); // subtract hours from time span intSpan = intSpan - (intHours * 3600000); // get number of minutes intMinutes = Math.floor(intSpan / 60000); // subtract minutes from time span intSpan = intSpan - (intMinutes * 60000); // get number of seconds intSeconds = Math.floor(intSpan / 1000); // create output string if ( intYears > 0 ) if ( intYears > 1 ) strHowOld = intYears.toString() + ' Years'; else strHowOld = intYears.toString() + ' Year'; else strHowOld = ''; if ( intMonths > 0 ) if ( intMonths > 1 ) strHowOld = strHowOld + ' ' + intMonths.toString() + ' Months'; else strHowOld = strHowOld + ' ' + intMonths.toString() + ' Month'; if ( intWeeks > 0 ) if ( intWeeks > 1 ) strHowOld = strHowOld + ' ' + intWeeks.toString() + ' Weeks'; else strHowOld = strHowOld + ' ' + intWeeks.toString() + ' Week'; if ( intDays > 0 ) if ( intDays > 1 ) strHowOld = strHowOld + ' ' + intDays.toString() + ' Days'; else strHowOld = strHowOld + ' ' + intDays.toString() + ' Day'; if ( intHours > 0 ) if ( intHours > 1 ) strHowOld = strHowOld + ' ' + intHours.toString() + ' Hours'; else strHowOld = strHowOld + ' ' + intHours.toString() + ' Hour'; if ( intMinutes > 0 ) if ( intMinutes > 1 ) strHowOld = strHowOld + ' ' + intMinutes.toString() + ' Minutes'; else strHowOld = strHowOld + ' ' + intMinutes.toString() + ' Minute'; if ( intSeconds > 0 ) if ( intSeconds > 1 ) strHowOld = strHowOld + ' ' + intSeconds.toString() + ' Seconds'; else strHowOld = strHowOld + ' ' + intSeconds.toString() + ' Second'; } else strHowOld = 'Not Born Yet' // return string representation return strHowOld } // | // qryHowOld | // ---------------------------------------------------------------------------|