Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/04/2009, 22:32
Avatar de javico40
javico40
 
Fecha de Ingreso: agosto-2008
Ubicación: Evergreen Terrace 123
Mensajes: 288
Antigüedad: 15 años, 8 meses
Puntos: 9
Algoritmo para Tiempo y Clima virtual en php

Hola comunidad, estoy desarrollando un mmorts (juego de navegador en tiempo real) basado en la segunda guerra mundial, este incluye dos caracteristicas especiales, el manejo del tiempo y el manejo del clima virtuales. he escrito un algortimo para calcular el tiempo a partir de la fecha 1 sep 1939 equivalente a la fecha actual, sin embargo he comprobado que falla abismalmente en el calculo y aun no se porque, ojala me podais ayudar. Tambien estoy diseñando un algoritmo que calcula el clima en base a los meses en que se suceden, esto solo en regiones como europa y rusia en el cual el clima tiene estaciones.

Algoritmo para calcular el tiempo:

Código:
class Calendar{

function evaluateDay($day, $dayOld){
$dif = $dayOld-$day;
echo($dif);
}

function getWarStartDate(){
 $sql = new DataBase();
    $query = "SELECT fechaInicio FROM server WHERE idServer = '1' LIMIT 1;";
    $result = $sql->check($query);
    while ($row = mysql_fetch_array($result)) {
        $fecha = $row['fechaInicio'];
    }
    return $fecha;
}

function evaluateMonth($month, $monthOld){
$dif = $monthOld-$month;

if($month > $monthOld){
echo("El mes actual es mayor al mes anterior");
}

}

function evaluateYear($year, $yearOld){

}

function evaluateAll($year, $yearO, $month, $monthO, $day, $dayO, $ini){

//evaluando los meses
// se debe conocer cuantos meses han pasado desde iniciado el juego
// meses de 30 dias

$mesPas = $month-$ini;  // esto siempre sera positivo
//calculo cuatos dias han pasado
$diasPas = $mesPas*30; 
//contador de años transcurridos
$masAños=0;
//devuelve los meses pasados 8
$difM = floor($diasPas/3);
// calculoMes = 09 + 8 = 17
$calMonth = $monthO + $difM;
//muestro los meses pasados
//echo($calMonth-9);
//si calculoMes > 12   true
if($calMonth > 12){
// mes = calculoMes - 12 = 17-12 = 5
$nMonth = $calMonth - 12; 
// se incrementa un año
$masAños = $masAños +1; 
//si no
}else{
//el mes es igual al calculado
$nMonth = $calMonth;
}
//calculo del año
$difYear = $yearO - $year;
$nYear = $year+$difYear;
$nYear = $nYear+$masAños; 
//la fecha actual es
$nFecha = $day."-".$nMonth."-".$nYear;

return $nFecha;
}


}//fin clase evaluates
Si conocen de algo parecido para el clima seria de mucha ayuda, igual si encuentran el error en el tiempo, gracias.