Convertir el dia del Mes a texto

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Convertir el dia del Mes a texto

Mensaje por akodo » Vie Sep 30, 2011 5:14 pm

No sé cómo habrás hecho el bechmark (si es que se le puede llamar así), pero dichas diferencias no creo que sean adecuadas para escoger al mejor algoritmo.
Supongo que lo que habrás hecho es ejecutar cada código una vez dando un valor de 30 para el día. El problema es que no hay garantías de que dicha porción de código se ejecute una vez, ni de que siempre se vaya a pedir ese día.

En mi opinión, lo que habría que comprobar es la ejecución de la función unas 1000 veces con un valor aleatorio para el día (ya que estamos convirtiendo un valor númerico es fácil realizarlo). La ejecución de las 1000 veces permitiría recoger datos más fiables porque un retraso de 0.2 ms puede haber sido causado por muchas cosas, pero si las diferencias son de 200 ms y 100 ms debería corroborar que dicha diferencia no ha sido "suerte".
La razón de aleatorizar el día es que para el código de nbr_1, el día 30 es el peor caso, pero todo cambiaría si consideramos el día 1 o bien cambiamos el orden de las condiciones forzando a que se compruebe primero el día 30. En este sentido, estás poniendo un handicap muy alto en el código de nbr_1
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: Convertir el dia del Mes a texto

Mensaje por mcun » Vie Sep 30, 2011 5:21 pm

mmm lo hice en una sola ejecución llamando la clase en el principio deteniéndola luego y mostrando le resultado por último ... luego veo si puedo hacerlo como dices ..

esto fue lo que hice

Código: Seleccionar todo

<?php
//incluyo el c?digo de la clase stoper
include_once('stoper/class.stoper.php');

//instancio un objeto de la clase stoper
$s = new Stoper();

echo 'Empiezo... mcun <br>';
//ejecuto el m?todo Start() para que el objeto stoper comience a contar el tiempo
$s->Start();
 $f = fopen ("miarchivo.txt", "r");
    $ln= 0;
     $fecha=date("d");
     echo $fecha;
     while ($line= fgets ($f)) {
        $ln++;
        if($ln==$fecha){
            echo '-->'.$line .'<br />';
        }
    }
    fclose ($f);
//paro la cuenta del tiempo por el objeto stoper con el m?todo Stop()
$s->Stop();
//muestro el tiempo que he tardado en hacer las repeticiones
echo $s->showResult('el tiempo de script mcun ').'<br>';    
    
//instancio un objeto de la clase stoper
$s = new Stoper();
echo 'Empiezo... t4rr1t0 <br>';
//ejecuto el m?todo Start() para que el objeto stoper comience a contar el tiempo
$s->Start();  
$lista_nros="cero|uno|dos|tres|cuatro|cinco|seis|siete|oho|nueve|dies|once|doce|trece|cator|quince|
dies6|dies7|dies8|dies9|veinte|venti1|venti2|venti3|venti4|venti5|venti6|venti7|venti8|venti9|trenta|trenti1";
$nombre_nros=explode("|",$lista_nros);
$f_d = date("d"); 
echo $nombre_nros[$f_d];
//paro la cuenta del tiempo por el objeto stoper con el m?todo Stop()
$s->Stop();
//muestro el tiempo que he tardado en hacer las repeticiones
echo $s->showResult('el tiempo de script t4rr1t0 ').'<br>'; 

//instancio un objeto de la clase stoper
$s = new Stoper();
echo 'Empiezo... akodo <br>';
//ejecuto el m?todo Start() para que el objeto stoper comience a contar el tiempo
$s->Start();
function toDateString($day){
  static $days = array("cero", "uno", "dos", "tres","cuatro","cinco","seis","siete","ocho","nueve","dise","once","doce","trece","cator","quin","dis6","dis7","dies8",
"dies9","vainte","veinti1","veinti2","veinti3","veinti4","veinti5","veinti6","veinti7","veinti8","veinti9","treinta","treinta1" );
  return $days[$day];
}
$day = date("d");
echo toDateString($day).'<br />';
//paro la cuenta del tiempo por el objeto stoper con el m?todo Stop()
$s->Stop();
//muestro el tiempo que he tardado en hacer las repeticiones
echo $s->showResult('el tiempo de script akodo ').'<br>'; 
//instancio un objeto de la clase stoper
$s = new Stoper();
echo 'Empiezo... nbr_1 <br>';
//ejecuto el m?todo Start() para que el objeto stoper comience a contar el tiempo
$s->Start();
$f_d = date("d"); 
if ($f_d == 01) 
{ $fe_txt = primer;
}
if ($f_d == 02) 
{ $fe_txt = dos;
}
if ($f_d == 03) 
{ $fe_txt = tres;
}
if ($f_d == 04) 
{ $fe_txt = cuatro;
}
if ($f_d == 05) 
{ $fe_txt = cinco;
}
if ($f_d == 06) 
{ $fe_txt = seis;
}
if ($f_d == 07) 
{ $fe_txt = siete;
}
if ($f_d == 08) 
{ $fe_txt = ocho;
}
if ($f_d == 09) 
{ $fe_txt = nueve;
}
if ($f_d == 10) 
{ $fe_txt = diez;
}
if ($f_d == 11) 
{ $fe_txt = once;
}
if ($f_d == 12) 
{ $fe_txt = doce;
}
if ($f_d == 13) 
{ $fe_txt = trece;
}
if ($f_d == 14) 
{ $fe_txt = catorce;
}
if ($f_d == 15) 
{ $fe_txt = quince;
}
if ($f_d == 16) 
{ $fe_txt = dieciséis;
}
if ($f_d == 17) 
{ $fe_txt = diecisiete;
}
if ($f_d == 18) 
{ $fe_txt = dieciocho;
}
if ($f_d == 19) 
{ $fe_txt = diecinueve;
}
if ($f_d == 20) 
{ $fe_txt = veinte;
}
if ($f_d == 21) 
{ $fe_txt = veintiun;
}
if ($f_d == 22) 
{ $fe_txt = veintidós;
}
if ($f_d == 23) 
{ $fe_txt = veintitrés;
}
if ($f_d == 24) 
{ $fe_txt = veinticuatro;
}
if ($f_d == 25) 
{ $fe_txt = veinticinco;
}
if ($f_d == 26) 
{ $fe_txt = veintiséis;
}
if ($f_d == 27) 
{ $fe_txt = veintisiete;
}
if ($f_d == 28) 
{ $fe_txt = veintiocho;
}
if ($f_d == 29) 
{ $fe_txt = veintinueve;
}
if ($f_d == 30) 
{ $fe_txt = treinta;
}
if ($f_d == 31) 
{ $fe_txt = "treinta y un";
}

echo $fe_txt .'<br />';

//paro la cuenta del tiempo por el objeto stoper con el m?todo Stop()
$s->Stop();
//muestro el tiempo que he tardado en hacer las repeticiones
echo $s->showResult('el tiempo de script nbr_1 ').'<br>'; 
?>

.........
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
t4rr1t0
Ganador CSEL 2011
Ganador CSEL 2011
Mensajes: 357
Registrado: Dom Dic 12, 2010 6:07 pm
Contactar:

Re: Convertir el dia del Mes a texto

Mensaje por t4rr1t0 » Vie Sep 30, 2011 6:14 pm

akodo escribió: Mi opción : similar a la que dice t4rr1t0, pero utilizando un array directamente
Umm, la verdad es que me di una vuelta de más con el explode, andaba volando bajo ese día...
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje