Spanish [SOLUCIONADO] Problemas en formato de fecha devuelta por MaterialDatePicker

desof

Well-Known Member
Licensed User
Longtime User
Hola amigos estoy utilizando el MaterialDatePicker y tengo el siguiente código
B4X:
Sub Date_onDateSet(year As Int, monthOfYear As Int,    dayOfMonth As Int)
    
    Log($"onDateSet(${year},${monthOfYear},${dayOfMonth})"$)
    Dim d As Long
    DateTime.DateFormat = "dd.mm.yyyy"
    d = DateTime.DateParse(dayOfMonth&"."&monthOfYear&"."&year)
    LabelDate.Text =dayOfMonth& " de "& DateUtils.GetMonthName(d)&" de "&year
    
End Sub


Y Espero me devuelva una fecha en este formato 3 de Enero de 2018 Y lo hace sólo hoy que corresponde a esa fecha pero si selecciono otro mes en el MaterialDatePicker siempre me devuelve Enero
o sea selecciono 27 de diciembre de 2019 y me devuelve 27 de Enero de 2019
 

JCO

Member
Licensed User
Longtime User
Creo que el problema viene de mayusculas/minusculas.
Intenta cambiando:
B4X:
DateTime.DateFormat = "dd.mm.yyyy"
Por:
B4X:
DateTime.DateFormat = "dd.MM.yyyy"
 

desof

Well-Known Member
Licensed User
Longtime User
Creo que el problema viene de mayusculas/minusculas.
Intenta cambiando:
B4X:
DateTime.DateFormat = "dd.mm.yyyy"
Por:
B4X:
DateTime.DateFormat = "dd.MM.yyyy"

Nó no es eso sigue igual !
Alguna otra idea ?
 

clarionero

Active Member
Licensed User
Longtime User
Hola. Según una entrada del foro de la libreria debes restarle 1 al mes.

Rubén
 

JCO

Member
Licensed User
Longtime User
Nó no es eso sigue igual !
Alguna otra idea ?
Estás seguro?
Yo he copiado tu código y con el "mm", reproduzco el problema, y con el "MM", me funciona bien
 

desof

Well-Known Member
Licensed User
Longtime User
Estás seguro?
Yo he copiado tu código y con el "mm", reproduzco el problema, y con el "MM", me funciona bien

HOLA amigo, estaba cometiendo el error de cambiar cunado se inicializaba el componente..

B4X:
date.Initialize("Date",(DateTime.GetYear(DateTime.Now)),DateTime.GetMonth(DateTime.Now)-1,DateTime.GetDayOfMonth(DateTime.Now))    ''Msgbox(DateTime.DeviceDefaultTimeFormat,"")
    Dim cal As Calendar
    cal.Initialize("dd.MM.yyyy",cal.ENGLISH,DateTime.Now)   
    date.MinDate = cal

y no cuando se le daba el formato...
B4X:
Sub Date_onDateSet(year As Int, monthOfYear As Int,    dayOfMonth As Int)   
    Dim d As Long
    DateTime.DateFormat = "dd.MM.yyyy"   
    monthOfYear=monthOfYear+1
    d = DateTime.DateParse(dayOfMonth&"."&monthOfYear&"."&year)   
    LabelDate.Text =dayOfMonth& " de "& DateUtils.GetMonthName(d)&" de "&year
End Sub

YA FUNCIONA CORRECTAMENTE!!!

MUCHAS GRACIAS!!!
 

bgsoft

Well-Known Member
Licensed User
Longtime User

desof

Well-Known Member
Licensed User
Longtime User
Para dar por concluido este hilo y tratar de colaborar con mi experiencia con el resto del grupo pongo aqui abajo la solución encontrada a la pregunta en cuestión

B4X:
Sub CalculaDiasVEncimiento() As Int  
       
    Dim actualFecha As Long = DateUtils.SetDate(DateTime.GetYear(DateTime.Now), DateTime.GetMonth(DateTime.Now), DateTime.GetDayOfMonth(DateTime.Now))
   
    Dim vencimientoFecha As Long = DateUtils.SetDate(DateTime.GetYear(ACSpinner1.Tag), DateTime.GetMonth(ACSpinner1.Tag), DateTime.GetDayOfMonth(ACSpinner1.Tag))

    Dim diasDiff As Int = DateUtils.PeriodBetweenInDays(actualFecha, vencimientoFecha ).Days
   
    Return diasDiff  
End Sub
 
Top