Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Obtener ultimo dia del mes

Estas en el tema de Obtener ultimo dia del mes en el foro de .NET en Foros del Web. Hola; Os pongo en la situación que estoy y que es lo que quiero obtener. He creado un asp:calendar y cuando clico en un día ...
  #1 (permalink)  
Antiguo 07/01/2013, 02:48
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Exclamación Obtener ultimo dia del mes

Hola;
Os pongo en la situación que estoy y que es lo que quiero obtener. He creado un asp:calendar y cuando clico en un día del calendario obtengo la fecha en un textbox y mediante el siguiente código obtengo el mes y el año.
Código vb.net:
Ver original
  1. mes = Month(Me.TextBox1.Text)
  2. ano = Year(Me.TextBox1.Text)

Lo que quiero es guardar en una variable el mes el año y el ultimo día del mes. Por ejemplo, si clico en el 15 de enero del 2013 que me guarde en una variable 31/01/2013, es decir, clique el día que clique, que me guarde el ultimo día del mes con su me y año.

¿Como puedo hacerlo?

Espero que podrais ayudarme;

Saludos
__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 07/01/2013, 02:59
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Obtener ultimo dia del mes

Yo veo dos opciones:
- Coges y creas el DateTime con el dia 1 del mes siguiente (mes+1) y haces un AddDay(-1) para obtener el día anterior y que corresponde al último del mes.
- Tener en un array el número de dias de un mes [31,27,31,30,31,30,...] y cuando quieras saber el día harias algo como MaxDias[mes]. El problema es febrero, ya que en los años bisiestos tiene 28 y eso lo tendrías que controlar.

En ambos casos tienes dos situaciones que controlar, en la primera solución es que cuando estas en diciembre, porque no puedes hacer un DateTime con el mes "mes+1" porque no existe mes 13. Y en la solución del array tienes el problema de los años bisiestos (aunque se puede calcular cuando es bisiesto y cuando no).

Yo optaría por una de estas dos soluciones.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 07/01/2013, 03:08
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: Obtener ultimo dia del mes

Hola;
Muchas gracias. Al final lo conseguí haciendo lo siguiente:
Código vb.net:
Ver original
  1. Function UltimoDiaDelMes(ByVal dtmFecha As Date) As Date
  2.         UltimoDiaDelMes = DateSerial(Year(dtmFecha), Month(dtmFecha) + 1, 0)
  3.     End Function

El problema, que tampoco es que sea un problema, es que me devuelve la fecha en el formato mm/dd/aaaa y lo quiero dd/mm/aaaa. Como puedo darle ese formato?

Gracias
__________________
Gracias por todo;

Un saludo
  #4 (permalink)  
Antiguo 07/01/2013, 03:25
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Obtener ultimo dia del mes

Yo suelo usar DateTime en lugar de Date, y con la función ToString ya me resuelve ese tema y es muy flexible.

Al usar Date, por lo que veo has de jugar con el Format.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 07/01/2013, 03:49
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: Obtener ultimo dia del mes

Utilizando date time me va perfecto y como tu dices al usar Date tengo que poner Format así que lo he echo como lo haces tu, con el DateTime.

Gracias, solucionado
__________________
Gracias por todo;

Un saludo

Etiquetas: dia, textbox, ultimo
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 17:54.