Fechas : StrTimeToDate
|
Autor/es: Juan M Afán de Ribera José Bengoechea Ibaceta (Chea) |
| Pregunta : Sé que puedo utilizar la función Cdate() para convertir una cadena que representa horas, tipo "16:25:40" a un dato tipo Fecha/Hora, pero si la cadena representa 24 o más horas me aparece el mensaje "Error 13, no coinciden los tipos..." ¿qué código tendría que utilizar en un caso como éste? |
| Respuesta : Puedes utilizar esta función StrTimeToDate para ese propósito. Tiene los siguientes |
Argumentos | Argumento | Descripción | | sDate | Requerido. Una cadena con el formato "horas:minutos:segundos". Las diferentes partes de sDate pueden tener más de 2 cifras, la función lo interpretará correctamente |
|
La función StrTimeToDate devolverá un dato fecha válido.
Ejemplo de uso: |
' esto devolverá 02/01/1900 17:00:00
MsgBox StrTimeToDate("89:00:00")
' esto devolverá 25/08/1903 8:00:00
MsgBox StrTimeToDate("32000:00:00")
' esto devolverá 19/04/1907 16:00:00
MsgBox StrTimeToDate("64000:00:00")
' esto devolverá 24/12/2004 20:00:00
' la fecha exacta donde me encuentro ahora
Debug.Print StrTimeToDate("920300:00:00")
|
| Pega esta función en un módulo estandar |
'---------------------------------------------------------
'
' StrTimeToDate
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Function StrTimeToDate(sDate As String) As Date
Dim Days As Long
Dim Hours As Double
Dim Minutes As Double
Dim Seconds As Double
Dim vDate As Variant
vDate = Split(sDate, ":")
Days = Int(Int(vDate(0)) / 24)
Hours = (Int(vDate(0)) Mod 24) * 0.0416666
Minutes = Int(vDate(1)) * 0.0006944
Seconds = Int(vDate(2)) * 0.0000115
StrTimeToDate = Days + Hours + Minutes + Seconds
End Function
'---------------------------------------------------------
|
Ejemplos: |
Temas relacionados: TimeToString |