AS3: Segundos a Formato Hora
Tratando de crear un video player personalizado em encontre con la necesidad de coger el tiempo que me arroja el streaming que es en segundos y pasarlo a el formato conocido de h:mm:ss. Asi qeu cree esta clase estatica muy sencilla que hace esto de manera facil. Podemos testiar nuestro codigo de la siguiente manera:
trace(TimeFormat.formatTime(210, TimeFormat.SECONDS));
Obteniendo para este caso "0:03:30".
Nuestro Clase estaria definida de la siguiente forma:
package com.wasp{
public class TimeFormat{
public static const HOURS:uint = 2;
public static const MINUTES:uint = 1;
public static const SECONDS:uint = 0;
public function TimeFormat() {
}
public static function formatTime(time:Number, detailLevel:uint = 2):String {
var intTime:uint = Math.floor(time);
var hours:uint = Math.floor(intTime/ 3600);
var minutes:uint = (intTime - (hours*3600))/60;
var seconds:uint = intTime - (hours*3600) - (minutes * 60);
var hourString:String = detailLevel == HOURS ? hours + ":":"";
var minuteString:String = detailLevel >= MINUTES ? ((detailLevel == HOURS && minutes <10 ? "0":"") + minutes + ":"):"";
var secondString:String = ((seconds < 10 && (detailLevel >= MINUTES)) ? "0":"") + seconds;
return hourString + minuteString + secondString;
}
}
}
PHP: Clases abstractas
PHP desde su version 5 a configurado unlenguaje más robusto y tratando de ser un lenguaje Orientado a Objetos como java, c++, c# entre muchos otros. La posibilidad de crear objetos (funcionalidad propia de todo le nguaje OO) ha generado un gran entusiasmo en todo los programadores de PHP.
La abstracion de clases es un elemento sumamente importante por que son clases que definen patrones para otras clases que extiendes de estas (guias).
Un ejemplo muy interesante e ilustrativo que vemos permanentemente en los libros de programacion es el de los medios de transporte donde la clase abstracta es la de vehiculo y de la cual extienden objetos como carro, moto, bus, bicicleta etc.
La clase abstracta se declara de la siguiente forma:
abstract class Vehículo
{
public $potencia;
public $peso;
}
Debemos saber que esta clase no se puede instanciar, si lo intentas de arrojara un error.
La clase abstracta definira las propiedades y metodos que se necesitaran para implementar las clases derivadas. Para ilustrarlo mejor refiriendonos a la clase vehiculo tenemos lo siguiente:
abstract class Vehículo
{
public $potencia;
public $peso;
function __construct($potencia,$peso)
{
$this->potencia = $potencia;
$this->peso = $peso;
return true;
}
function relacionPesoPotencia()
{
if ($this->potencia>0)
{
return ($this->peso/$this->potencia);
}
return -1;
}
abstract function aceleracionAproximada();
}
La clase carro que extiende de vehiculo seria:
//// una Carro es un Vehículo
class Carro extends Vehículo
{
function __construct($potencia,$peso)
{
$this->potencia = $potencia;
$this->peso = $peso;
return true;
}
function aceleracionAproximada()
{
$coeficienteTransmision = 3.0;
$t = $this->peso * 771.73 / (2.0 * $this->potencia * 735);
$t = $t * $coeficienteTransmision;
return $t;
}
}
Caracteristicas:
- Las clases abstractas no se pueden instanciar.
- Las clases que heredan de esta deben implementar todos los metodos abstractos.
- Las clases abstractas pueden heredar de otras clases.
- Los parametros de los metodos deben ser iguales, ya que sino sera tratado como otro metodo.
- Si una clase tiene un metodo abstracto esta debe declararse también como clase abstracta.