Spanish control Calendar

Joserra

Member
Licensed User
Longtime User
Hola amigos,
Quiero utilizar el control calendario para que me aparezcan unos datos en un formulario cuando selecione una fecha pero no me sale.
He intentado con calendar1.value pero no encuentro la forma de:
1º) obtener este valor en algun formato (¿en cual?)
2º) compararlo con otro valor fecha/date

Podeis ayudarme?
Gracias de antemano.
Joserra
 

PepSoft

Member
Licensed User
Longtime User
A ver si este ejemplo te puede ayudar.

Sub Globals
'Declare the global variables here.
End Sub

Sub App_Start
Form1.Show
DateFormat("dd/mm/yyyy")
Calendar1.Format="dd/mm/yyyy"
End Sub


Sub Calendar1_ValueChanged
TextBox1.Text=Calendar1.Value
TextBox2.Text=Date(Calendar1.Value)
End Sub

Ten en cuenta que el Calendar.Value te devuelve una cifra llamada Tics.
Con la funcuón Date(tics) puedes obtener la fecha.

Procura trabajar con el mismo formato en todos los controles.

A ver si con esto lo solucionas

PepSoft
 

Joserra

Member
Licensed User
Longtime User
A ver si este ejemplo te puede ayudar.



Ten en cuenta que el Calendar.Value te devuelve una cifra llamada Tics.
Con la funcuón Date(tics) puedes obtener la fecha.

Procura trabajar con el mismo formato en todos los controles.

A ver si con esto lo solucionas

PepSoft

Muchas Gracias por tu rapida respuesta y por la ayuda.
Lo intento y te confirmo

Saludos
Joserra
 

Joserra

Member
Licensed User
Longtime User
Genial!

Muchas gracias por tu ayuda, amigo pepSoft.

Si me permites el abuso, tengo un problema para acabar un proyecto (adjunto el programa, si lo he subido bien) en el cual tengo que restar dos fechas.
Mirando el help, solo he encontrado la forma DateAdd.
¿Existe alguna forma de hacerlo?

Gracias de antemano
Joserra
 

Attachments

  • CalcCarnaval.sbp
    4.5 KB · Views: 422

Pachuquin

Member
Licensed User
Longtime User
Hola Joserra:

Yo en su día tampoco la encontré, así que lo hice de esta forma.

Como ya te ha comentado PepSoft en B4ppc se puede trabajar con fechas o con ticks.

Un tick es 1/10.000.000 parte de un segundo, con lo cual puedes convertir la fecha inicial y final a ticks, restarlas y convertirlo después en días.

B4X:
DateFormat("dd/mm/yyyy")
'Para indicarle que vamos a usar el formato de fechas de España

DiaInicial=DateParse("21/03/2010")
'Convertimos a ticks la fecha inicial
'Con lo cual DiaInicial valdrá 634047264000000000

DiaFinal=DateParse("28/03/2010")
'Convertimos a ticks la fecha final
'Con lo cual DiaFinal valdrá   634053312000000000

Diferencia=DiaFinal - DiaInicial
'Restamos las dos catidades
'Diferencia valdrá 6048000000000

Segundos=Diferencia / 10000000    ' 6048000000000 / 10000000 = 604800
'Dividimos diferencia entre 10.000.000 para saber el número de segundos

Minutos=Segundos/60                  ' 604800 / 60 = 10080
Horas=Minutos/60                       ' 10080 / 60 = 168
Dias=Horas/24                            ' 168 / 24 = 7

'O bien directamente a días

Dias=Diferencia/864000000000 ' Que es el número de ticks que tiene un día

Espero que te sirva de ayuda y que no me hay puesto muy pesado.
 

Joserra

Member
Licensed User
Longtime User
Hola Joserra:

Yo en su día tampoco la encontré, así que lo hice de esta forma.

Como ya te ha comentado PepSoft en B4ppc se puede trabajar con fechas o con ticks.

Un tick es 1/10.000.000 parte de un segundo, con lo cual puedes convertir la fecha inicial y final a ticks, restarlas y convertirlo después en días.

B4X:
DateFormat("dd/mm/yyyy")
'Para indicarle que vamos a usar el formato de fechas de España

DiaInicial=DateParse("21/03/2010")
'Convertimos a ticks la fecha inicial
'Con lo cual DiaInicial valdrá 634047264000000000

DiaFinal=DateParse("28/03/2010")
'Convertimos a ticks la fecha final
'Con lo cual DiaFinal valdrá   634053312000000000

Diferencia=DiaFinal - DiaInicial
'Restamos las dos catidades
'Diferencia valdrá 6048000000000

Segundos=Diferencia / 10000000    ' 6048000000000 / 10000000 = 604800
'Dividimos diferencia entre 10.000.000 para saber el número de segundos

Minutos=Segundos/60                  ' 604800 / 60 = 10080
Horas=Minutos/60                       ' 10080 / 60 = 168
Dias=Horas/24                            ' 168 / 24 = 7

'O bien directamente a días

Dias=Diferencia/864000000000 ' Que es el número de ticks que tiene un día

Espero que te sirva de ayuda y que no me hay puesto muy pesado.

Gracias por vuestra ayuda.
Os comentaré como me va con ello.

Saludos
Joserra
 

Joserra

Member
Licensed User
Longtime User
Control Calendario

Hola amigos, aquí estoy de vuelta.

Debeis perdonadme pero ayer no os informé debidamente y hasta que no he llevado vuestra ayuda al programa, no me he dado cuenta.

Como habreis podido comprobar en el pograma que adjunté, estoy intentando hallar la fiesta variable del Domingo de Pascua y luego, a partir de éste, hallar la fecha del Miercoles de Ceniza (y así encuentro los Carnavales).

Es decir, lo que estoy buscando es la manera de restar una cantidad de dias x (en este caso 40 dias) a una fecha. Y por si fuera poco, esa fecha la ignoro y me viene dada por la siguiente fórmula:
-----------------------------------
'Fecha Domingo de Pascua (segun GAUSS)

A=DateY 'Año 2010
a1 = A Mod 19
b= A Mod 4
c = A Mod 7
M1 = 24
N1 = 5
d = ((19*a1) + M1) Mod 30
e = ((2*b)+(4*c)+(6*d)+N1) Mod 7
f=d+e
If f<10 Then
fecha=f+22
mes= "marzo"
lblfpascua.Text=fecha & " " & mes
Else
fecha=f-9
mes="abril"
lblfpascua.Text=fecha & " " & mes
End If
----------------------------------
Para el año 2010, ha resultado que el Miercoles de Ceniza fue el 17 de Febrero
y el Domingo de Pascua es el 4 de Abril.

No sé si podreis ayudarme, porque me meto en unos fregados impresionantes pero de todas maneras os agradezco vuestra colaboración.

Saludos
Joserra
 

Pachuquin

Member
Licensed User
Longtime User
Aquí tienes el código.

Calcula el Domingo de Pascua, Domingo de Ramos, Miércoles de Ceniza y Martes de Carnaval.

Un Saludo
 

Attachments

  • CalcCarnaval.sbp
    2.6 KB · Views: 384

PepSoft

Member
Licensed User
Longtime User
Hola:

En resumen siempre tienes que transformar las fechas y los dias que quieras restar en Tics. Luego vuelves a convertir los Tics en una fecha.

Lo de calcular la fecha de Pascua no tengo ni idea.

Suerte
 

Joserra

Member
Licensed User
Longtime User
Aquí tienes el código.

Calcula el Domingo de Pascua, Domingo de Ramos, Miércoles de Ceniza y Martes de Carnaval.

Un Saludo

Perdona que vuelva a daros la murga otra vez, pero no me abre el programa.

Me da error:

Error loading file.
Input string was not in a correct format.

Lo siento.

Saludos
Joserra
 

Pachuquin

Member
Licensed User
Longtime User
Eso es porque tienes una versión anterior de B4ppc.

Ábrelo con el bloc de notas y podrás ver el código.
 
Top