problemas con las fechas

MalayIre
29 de Abril del 2004
Hola a todos:
A ver tenemos el siguiente problema.
Tenemos una fecha normal date(mifecha) y le queremos cambiar el formato con var=format(mifecha, "mm/dd/yyyy")
esto nos devuelve un string, pero lo que queremos es poder trabajar con esta nueva fecha con este formato, pero como fecha no como string, porque si hacemos cdate(var) nos da error diciendo que no es un formato de fecha valido.
Nos dijeron que podria utilizarse para solucionar esto el parse o el parseexact, alguien sabe como funcionan? o como podria solucionarse nuestro problema?
Gracias de antemano.

Mikel
29 de Abril del 2004
Si he entendido bien, lo que quereis hacer es coger una variable tipo DateTime y dejar en ella unicamente la parte de fecha de la misma olvidandoos de la hora. Si lo que quereis hacer es lo que yo he entendido, hacer lo siguiente:

MiFecha = System.Convert.ToDateTime(MiFecha.ToShortDateString)

Espero que os sirva de algo.

Saludos desde Euskal Herria.

Mikel

Oscar
29 de Abril del 2004

A ver, como bien has dicho, el format te devuelve un sting con la fecha en el formato indicado. Si deseas seguir trabajando con una variable de tipo Date, no tienens que hacer nada. El tipo de datos Date tiene su propia representación interna, debes operar con la veriable y sólo cambiar su representación cuando se muestra al usuario.

En otras palabras, CDate(Format(miFecha, "mm/dd/yyyy")) no tiene ningún efecto práctico.

Espero haberte ayudado. Un saludo.

MalayIre
29 de Abril del 2004
Parece que no me explique bien, no quiero la parte corta de la fecha, sino que quiero poder trabajar con el nuevo formato de mes/dia/año como si fuera una fecha normal.
La segunda respuesta se acerca a lo que nosotras teniamos pensado, pero eso da error porque dice que este nuevo formato no es un formato de fecha valido.
Se os ocurre algo mas?
De todas maneras gracias por vuestras contestaciones.

Oscar
29 de Abril del 2004
No tenéis que cambiar el formato de la fecha. Debéis realizar las operaciones con las variables de tipo Date y SÓLO cambiar el formato al presentarlo al usuario.

Un ejemplo, a ver si queda claro (escrito directamente en el mensaje, a lo mejor hay algún error de sintáxis) :

Dim miFecha As Date
miFecha=Date;
MsgBox Format(miFecha, "dd-mm-yyyy") 'Mostrará 28-04-2004
MsgBox Format(miFecha, "mm/dd/yyyy") 'Mostrará 04/28/2004
miFecha=DateAdd(1, "m", miFecha)
MsgBox Format(miFecha, "dd-mm-yyyy") 'Mostrará 28-05-2004
MsgBox Format(miFecha, "mm/dd/yyyy") 'Mostrará 05/28/2004

Espero que esté claro. Una cosa es la representación interna de las variables de tipo Date (que no puedes cambiar) y otra la forma de representarlas como cadenas de caracteres.

Un saludo.



MalayIre
29 de Abril del 2004
Se que no tiene sentido lo que pedimos (o para mi no lo tiene), pero es lo que nos ha pedido nuestro jefe.
Lo que quiere es que trabajemos internamente y visualicemos con esa fecha en ese formato.
Lo vamos a dar por imposible, porque hasta nos estamos peleando nosotras por esta mierda.
Graciñas