Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2003, 08:26
Avatar de temaqueja
temaqueja
 
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
CONVERTIR año.sem.diasem -> dia/mes/año

Hola, les pido que me ayuden a solucionar un problema, pero para que me comprendan primero explico:

Tengo fechas en el siguiente formato: AAAASSD
donde:
AAAA = año 2003
SS = semana 04
D = dia de la semana 3 (miercoles)

Necesito convertirlas a formato común:
2003043 --> 22/01/2003

El año pasado me basé en unas funciones que encontre en los comentarios del manual oficial de php y esto me funcionó:
Código PHP:
<?
/* recibe parametros semana y dia (1=lunes, 7=domingo)
*  obtiene un timestamp a partir de ello.
*/
function wday($wkno,$xday) {
  
define ("DAY""86400");   // segundos en 1 dia
  
define ("WEEK""604800");  // segundos en 1 semana
  
define ("SO_DAY"$xday);    //ejm: 6 es sabado
  
$t time();                            //timestamp actual
  
$dx date("w");                   //dia de la semana actual
  
$woy exec('date +%U'); // obtiene semana actual.
                        // sé que puedo reemplazarlo
                        // por date("W")  ;)
  
$woy+=1;
  
$t += (((SO_DAY $dx) * DAY) + (($wkno $woy) * WEEK));
  return 
$t;
}
 
// asi uso la funcion...
 
$fechadate('d/m/Y',wday(4,3));
 echo 
$fecha;
?>
El problema es que la función no pregunta año y asume el año actual. Ahora que ha pasado el tiempo ya tengo información tanto del 2002 como del 2003 y tengo problemas porque las consultas a fechas del año pasado me resultan en fechas de este año, es decir, si busco: 2002531 (correspondiente al lunes 30 de diciembre del 2002) me devuelve 30/12/2003
__________________
_________________________
La computadora nació para resolver problemas que antes no existían