Foros del Web » Programando para Internet » ASPX (.net) »

Calcular Meses y Dias

Estas en el tema de Calcular Meses y Dias en el foro de ASPX (.net) en Foros del Web. Hola Amigos como puedo calcular cuantos dias han transcurrido desde el 10/Ago/2010 hasta el 10/Ene/2010 ? He utilizado la function Datediif pero esta solo me ...
  #1 (permalink)  
Antiguo 02/02/2011, 20:45
 
Fecha de Ingreso: mayo-2008
Mensajes: 139
Antigüedad: 15 años, 11 meses
Puntos: 0
Calcular Meses y Dias

Hola Amigos como puedo calcular cuantos dias han transcurrido desde el 10/Ago/2010 hasta el 10/Ene/2010 ?

He utilizado la function Datediif pero esta solo me trae los meses transcurrido sin tomar en cuenta los dias...

Gracias amigos espero su ayuda...
  #2 (permalink)  
Antiguo 03/02/2011, 18:48
 
Fecha de Ingreso: mayo-2008
Mensajes: 139
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Calcular Meses y Dias

Sera que nadie sabe esto aqui...
  #3 (permalink)  
Antiguo 04/02/2011, 17:45
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 7 meses
Puntos: 6
Respuesta: Calcular Meses y Dias

DateDiff tiene la siguiente estructura:
DateDiff(Intervalo, fecha1, fecha2)
para saber los dias solo utiliza el
DateInterval.Day
en internavlo...
aqui hay mas info -> http://msdn.microsoft.com/en-us/libr...6f(VS.80).aspx
  #4 (permalink)  
Antiguo 04/02/2011, 20:11
 
Fecha de Ingreso: mayo-2008
Mensajes: 139
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Calcular Meses y Dias

Te comprendo gakutaru pero eso no es sificiente. porque el datediif determina los meses que han pasado sin tomar en cuenta los dias...

Ej: del 15/Ene/2011 hasta el 10/Feb/2011 la funcion me devolvera 1 pero en realidad no ha pasado un mes...


Gracias por tu ayuda. Si encuentras la mandera me ayudar please....
  #5 (permalink)  
Antiguo 04/02/2011, 20:29
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 7 meses
Puntos: 6
Respuesta: Calcular Meses y Dias

y que esperas que muestre?
que diga han pasado 0,90 meses?
o la cantidad de dias?
  #6 (permalink)  
Antiguo 04/02/2011, 20:46
 
Fecha de Ingreso: mayo-2008
Mensajes: 139
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Calcular Meses y Dias

Te dare mi idea de lo que quiero hacer para que entiendas mejor.

Estoy desarrollando un modulo que cobre un recargo cada x fecha..

Entonces si yo configuro la fecha para el mes de enero. que el dia 15/01/2011 se cobrara recargo.

Si la persona que no ha pagado diciembre y viene el dia 10/01/2011 a pagar no se puede cobrar recargo.

Quiero que me muestre 0 si no ha pasado la fecha de vencimiento de recargo.... Ver porque quiero que sea preciso.

Espero que ahora me entiendas...
  #7 (permalink)  
Antiguo 04/02/2011, 20:49
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 7 meses
Puntos: 6
Respuesta: Calcular Meses y Dias

en ese caso con el date diff puedes obtener un negativo, asi si es negativo por codigo dices que es 0. y lo haces con el interval.day
  #8 (permalink)  
Antiguo 04/02/2011, 20:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 139
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Calcular Meses y Dias

Con un interval.day no me funcionara porque existe la posibilidad de que la persona dure 2 o 3 hasta 4 meses sin pagar... la cual por cada mes se le cobrara recargo. Tambien si es por dias el calculo no sera preciso porque hay dias de 31 etc..
  #9 (permalink)  
Antiguo 04/02/2011, 21:25
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 7 meses
Puntos: 6
Respuesta: Calcular Meses y Dias

Ya mira.
el datediff como te digo devuelve negativo
Código vb:
Ver original
  1. <html>
  2. <head>
  3. <script runat="server">
  4.     Sub Page_Load()
  5.         Dim fchVence As DateTime = "15/01/2011"
  6.         Dim fch2 As DateTime = "10/01/2011"
  7.         lblFecha.Text = DateDiff(DateInterval.Month, fchVence, fch2)
  8.     End Sub
  9. </script>
  10. </head>
  11. <body>
  12. <form runat="server">
  13. <asp:Label runat="server" ID="lblFecha"></asp:Label>
  14. </form>
  15. </body>
  16. </html>
esto devuelve 0
si cambias las fechas

Dim fchVence As DateTime = "15/01/2011"
Dim fch2 As DateTime = "31/05/2011"
lblFecha.Text = DateDiff(DateInterval.Month, fchVence, fch2)

devuelve 4
si kieres saber la cantidad de meses y dias exactos juega con el date difff y date add
x ejemplo
Código vb:
Ver original
  1. Sub Page_Load()
  2.         Dim fchVence As DateTime = "15/01/2011"
  3.         Dim fch2 As DateTime = "31/05/2011"
  4.         Dim intMeses As Integer = DateDiff(DateInterval.Month, fchVence, fch2)
  5.         lblFecha.Text = intMeses
  6.         Dim fch3 As DateTime = DateAdd(DateInterval.Month, intMeses, fchVence)
  7.         lblFecha.Text = fch3
  8.         Dim intDias As Integer = DateDiff(DateInterval.Day, fch3, fch2)
  9.         lblFecha.Text = "vencio el:  " & fchVence & ", hoy es: " & fch2 & ", la fecha esta pasada en " & intMeses & " meses y " & intDias & " dias"
  10.     End Sub
devolvera
vencio el: 15-01-2011, hoy es: 31-05-2011, la fecha esta pasada en 4 meses y 16 dias
que es una fecha mas exacta.
ahora q tienes los valores en enteros, puedes evaluarlos y saber de cuanto es la multa.
usa funciones para saber mas exactamente esto.
  #10 (permalink)  
Antiguo 04/02/2011, 21:46
 
Fecha de Ingreso: mayo-2008
Mensajes: 139
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Calcular Meses y Dias

Muchas gracias mi hermano por el esfuerzo. pero aqui tambien tengo la solucion

Public Function EvalTiempo(ByVal Fecha1 As DateTime, ByVal FechaFinal As DateTime) As Integer
Dim Meses As Integer = 0

If Fecha1.AddMonths(1) >= FechaFinal Then
Return 0
Exit Function
End If

Do
If Fecha1 >= FechaFinal Then
Return Meses - 1
Exit Function
End If

Fecha1 = Fecha1.AddMonths(1)
Meses += 1
Loop
End Function

Etiquetas: dias, meses, aspx, calculadora
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 10:11.