Foros del Web » Programando para Internet » ASP Clásico »

Problema con Datediff

Estas en el tema de Problema con Datediff en el foro de ASP Clásico en Foros del Web. Hey!! Saludos a todos.. Estoy trabajando con un sistema de reservaciones, para calcular las noches entre entrada y salida utilizo un datediff ; Si coloco ...
  #1 (permalink)  
Antiguo 20/06/2007, 07:17
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 19 años, 11 meses
Puntos: 5
Exclamación Problema con Datediff

Hey!! Saludos a todos..

Estoy trabajando con un sistema de reservaciones, para calcular las noches entre entrada y salida utilizo un datediff; Si coloco fechas "actuales" es decir desde este mes en adelante, incluso fechas del mes anterior, funciona correctamente. Pero si ingreso fechas anteriores por ejemplo hace 2 meses o mas, me devuelve una cantidad de noches exorbitantes.
Por ejemplo:
In:25/06/2007 Out:30/06/2007 Esto me devuelve 5 noches
pero:
In:15/03/2007 Out:18/03/2007 Esto me deveuelve 192 noches

Utilizo el datediff asi: datediff("d",In,Out)

A ver que me pueden decir??

__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>
  #2 (permalink)  
Antiguo 20/06/2007, 10:47
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: Problema con Datediff

Pues a mi me funciona bien...

Código:
f1 = "15/03/2007"
f2 = "18/03/2007"
response.write datediff("d",f1,f2) ' Esto me devuelve 3
  #3 (permalink)  
Antiguo 21/06/2007, 07:04
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 19 años, 11 meses
Puntos: 5
Re: Problema con Datediff

Me sigue dando problemas ahora tambien con fechas posteriores a la fecha actual, 01/08/2007 y 10/08/2007 me da 273 noches.

Aqui el codigo completo:
<%
ing=Request.Form("in")
sal=Request.Form("out")
if ing = "" or sal = "" then
%>
<form name="form1" method="post" action="fechas.asp">
<table width="317" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="121">Entrada</td>
<td width="188"><input type="text" name="in" id="in"></td>
</tr>
<tr>
<td>Salida</td>
<td><input type="text" name="out" id="out"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="button" id="button" value="Enviar"></td>
</tr>
</table>
</form>
<%
else
fecha=datediff("d",ing,sal)
Response.Write("<h2>Cantidad de noches: "&fecha&"</h2>")
end if
%>
y este el link para que lo prueben: Pinchar Aqui

Sera que tenga algo que ver el servidor, o que..? NO SE QUE PASA..

El codigo es correcto..
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>

Última edición por messer; 21/06/2007 a las 07:24 Razón: Edito el post para agregar el codigo y habilitar el vinculo de prueba
  #4 (permalink)  
Antiguo 21/06/2007, 09:50
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Problema con Datediff

Que tal messer.

Haciendo una pruebas en el link que pones, creo que el formato que toma de las fechas es mm/dd/yyyy.

Por eso para las fechas: 01/08/2007 y 10/08/2007 da 273 días.

Haciendo una prueba con 09/09/2007 y 09/19/2007 Cantidad de noches: 10.

Y la prueba :

Cita:
f1 = "15/03/2007"
f2 = "18/03/2007"
response.write datediff("d",f1,f2) ' Esto me devuelve 3
Funciona, porque cuando el mes se pasa de 12 automaticamente lo toma como día, ese es un error que no entiendo de Microsoft, sistematicamente debería ser sólo un formato y no cambiarlo según su valor, pero en fin, a mí también me ha dado problemas este caso.

Saludos!!
  #5 (permalink)  
Antiguo 21/06/2007, 14:54
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 19 años, 11 meses
Puntos: 5
Re: Problema con Datediff

Pero es rpoblema de la funcion datediff? porque al inicio estaba haciendo el mismo procedimiento pero en lugar de utilizar datediff estaba haciendo CDate(fecha2) - CDate(fecha1) y presentaba el mismo problema, en algunas ocasiones funcionaba y en otras me devolvia noches demas.. Por lo que decidi usar la funcion datediff y pues aqui me tienen..

Saludos
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>
  #6 (permalink)  
Antiguo 22/06/2007, 09:13
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Problema con Datediff

Que tal messer.

No, esta bien con el datediff, ahora lo que tienes que hacer es validar que tus fechas siempre deben estar en el formato mm/dd/yyyy, es decir fechas como 15/03/2007 y 18/03/2007 deben ser incorrectas.

Porque si pruebas con las fechas 03/15/2007 y 03/18/2007 tambien obtendrás una diferencia de tres días.

Quizá la mejor manera (o al menos la que se me hace más práctica, en lo personal) es usar un script para presentar un calendario y que el usuario seleccione una fecha, y no la capture directamente en el text box, como este por ejemplo: http://www.yxscripts.com/xc2/index.html

Saludos!!
  #7 (permalink)  
Antiguo 22/06/2007, 16:35
 
Fecha de Ingreso: septiembre-2004
Mensajes: 217
Antigüedad: 19 años, 8 meses
Puntos: 0
Re: Problema con Datediff

Cita:
Iniciado por messer Ver Mensaje
In:15/03/2007 Out:18/03/2007 Esto me deveuelve 192 noches
Buenas tardes messer, hice la prueba que mencionas poniendo el siguiente código:

<%
Entrada="15/03/2007"
Salida="18/03/2007"
response.write datediff("d",entrada,Salida)
%>

y me devuelve 3 días.

Tal vez por ahí en el código se te esté yendo alguna fecha mal o haya algo adicional que esté afectando el resultado.

Saludos!
  #8 (permalink)  
Antiguo 24/07/2007, 11:13
 
Fecha de Ingreso: julio-2007
Mensajes: 8
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Problema con Datediff

Que tal messer he probado el código que muestras y no me muestra ningún error me manda bien los datos incluso con las fechas que tu propones y tal como dice daniel00 tu error o el error es el formato que tienen las fechas al ingresar pues he cambiado los datos de dia por mes para corroborarlo y al cambiarlos me muestra el 273 que te muestra a tí checa bien esa parte o en su defecto elabora una función que cambie el formato de las fechas puedes apoyarte en javascript
  #9 (permalink)  
Antiguo 22/10/2008, 10:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Re: Problema con Datediff

Cita:
Iniciado por vakero Ver Mensaje
Que tal messer he probado el código que muestras y no me muestra ningún error me manda bien los datos incluso con las fechas que tu propones y tal como dice daniel00 tu error o el error es el formato que tienen las fechas al ingresar pues he cambiado los datos de dia por mes para corroborarlo y al cambiarlos me muestra el 273 que te muestra a tí checa bien esa parte o en su defecto elabora una función que cambie el formato de las fechas puedes apoyarte en javascript

Hola compañeros stoy intentado usar datediff para obtener la diferencia en dias entre dos fechas y no me da resultado, saben si phpmyadmin reconoce este comando? o si tienen alguna otra sugerencia alternativa.. HELP
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:02.