Quantcast
Channel: WordPress › Support » Forum: Hacks - Recent Topics
Viewing all articles
Browse latest Browse all 8245

charlyanderson on "PHP calculation for plugin"

$
0
0

PHP calculation help
Good evening,

I am very new to PHP and wondered if someone could help me add something onto a PHP calculation?

If someone could help it would be a HUGE help :-)

Basically I am working on a due date calculator... Currently it tells you when you due date will be from last period date. I need it to also say how many weeks pregnant the person currently is.

So last period date -> current date (displayed in weeks).

This is the PHP

function ovpredct2_datechooser($name,$value="")
{
    $months=array('','January','February','March','April','May','June','July','August',
    'September','October','November','December'); 

    if(empty($value)) $value=date("Y-m-d"); 

    $parts=explode("-",$value); 

    $day=$parts[2]+0;
    $month=$parts[1]+0;
    $year=$parts[0]; 

    $chooser=""; 

    $chooser.="<select name=".$name."month>";
    for($i=1;$i<=12;$i++)
    {
        if($i==$month) $selected='selected';
        else $selected='';
        $chooser.="<option $selected value=$i>$months[$i]</option>";
    }
    $chooser.="</select> / "; 

    $chooser.="<select name=".$name."day>";
    for($i=1;$i<=31;$i++)
    {
        if($i==$day) $selected='selected';
        else $selected='';
        $chooser.="<option $selected>$i</option>";
    }
    $chooser.="</select> / "; 

    $chooser.="<select name=".$name."year>";
    for($i=(date("Y")-1);$i<=2050;$i++)
    {
        if($i==$year) $selected='selected';
        else $selected='';
        $chooser.="<option $selected>$i</option>";
    }
    $chooser.="</select> ";     

    return $chooser;
} 

function ovpredct2_generate_html()
{
    //construct the calculator page
    $ovcalc="<style type=\"text/css\">
    .ovpredct2_table
    {
        ".get_option('ovpredct2_table')."
    }
    </style>\n\n"; 

    if(!empty($_POST['calculator_ok']))
    {
        //last cycle date
        $date="$_POST[dateyear]-$_POST[datemonth]-$_POST[dateday]"; 

        //convert to time
        $lasttime=mktime(0,0,0,$_POST[datemonth],$_POST[dateday],$_POST[dateyear]); 

        //first fertile day
        $firstdaytime=$lasttime + $_POST[days]*24*3600 - 16*24*3600;
        $firstday=date("F d, Y",$firstdaytime); 

        //last fertile day
        $lastdaytime=$lasttime + $_POST[days]*24*3600 - 12*24*3600;
        $lastday=date("F d, Y",$lastdaytime); 

        //have to adjust due date?
        $diff=$_POST[days] - 28; 

        //due date $date + 280 days
        $duedatetime=$lasttime + 280*24*3600 + $diff*24*3600;
        $duedate=date("F d, Y",$duedatetime); 

        //the result is here
        $ovcalc.='<div class="ovpredct2_table">
        Your estimated due date is <strong>'.$duedate.'</strong>
        <p align="center"><input type="button" value="Calculate again!" onclick="javascript:history.back();"></p>
        </div>'; 

    }
    else
    {
        $ovcalc.='<div class="ovpredct2_table">
        <form method="post">
        When was the first day of your last period?<br /><br />
        '.ovpredct2_datechooser("date",date("Y-m-d")).'<br><br>
        Usual number of days in your cycle: <select name="days">'; 

        for($i=20;$i<=45;$i++)
        {
            if($i==28) $selected='selected';
            else $selected='';
            $ovcalc.="<option $selected value='$i'>$i</option>";
        } 

        $ovcalc.='</select>
        <p align="center"><input type="submit" name="calculator_ok" value="Calculate"></p>
        </form>
        </div>';
    } 

    return $ovcalc;
}

Viewing all articles
Browse latest Browse all 8245

Trending Articles