-->

Menú principal

miércoles, 7 de marzo de 2018

Creación de una sencilla aplicación en lenguaje de programación Gambas para calcular el número de días entre dos fechas

En este ejemplo vamos a desarrollar una aplicación en Gambas que nos permita calcular el número de días transcurridos entre dos fechas. También vamos a calcular el número de meses y el número de años transcurridos.
Para ello lo primero que debemos hacer es crear un nuevo proyecto de Aplicación gráfica.

Seleccionamos el directorio donde se va a guardar el proyecto. Pulsamos el botón Next (siguiente).

Y finalmente le damos un nombre al proyecto y un título. En este caso le he llamado "Fechas" y el mismo título. Pulsamos el botón [OK] y nos informa de que el proyecto ha sido creado. A continuación nos aparece el entorno de programación de Gambas
En el menú que aparece a la izquierda tenemos varias carpetas: Proyecto, fuentes y datos. Hacemos doble click en el formulario Fmain que aparece dentro de la carpeta Fuentes y nos aparece la siguientes ventana:


Se nos ha abierto el formulario y en la parte derecha nos aparece una ventana con las propiedades del objeto seleccionado, y debajo una ventana con los objetos que podemos crear o añadir al formulario.
En primer lugar vamos a añadir una etiqueta en el formulario con el título del proyecto que estamos realizando, en nuestro caso le vamos a poner "CÁLCULO DEL NÚMERO DE DÍAS ENTRE DOS FECHAS". Para ello seleccionamos el objeto etiqueta y lo arrastramos al formulario.

Ahora nos vamos a las propiedades del objeto etiqueta que debe estar seleccionado y cambiamos el nombre, la fuente en la propiedad "font" y el texto de la etiqueta en la propiedad "text".


Vamos a crear dos campos de fecha para introducir la fecha inicial y la fecha final. Para ello ponemos dos etiquetas y juntos a ellas los dos campos de fecha que se añaden pulsando en la pestaña "Chooser" en el manejador de objetos y seleccionando y arrastrando al formulario el objeto "Datebox".

En la imagen anterior vemos que se ha añadido un botón "Calcular" para realizar el cálculo de la diferencia entre las dos fechas introducidas. Además hemos añadido tres campos para mostrar los resultados que son el número de días transcurridos, el de meses y el de años. Estos campos son "Texbox" y se añaden volviendo al seleccionador de objetos en la pestaña "Form".


En la siguiente imagen podéis ver como seleccionar el botón y los Textbox.

El siguiente paso es poner el código correspondiente en el botón calcular. Para ello hacemos doble click en dicho botón y nos aparece el editor de código. Tenemos que introducir el siguiente código:

Os explico cada una de las líneas:
Dentro del botón "Calcular" hay que colocar el código en el evento "Click", que se dispara cuando hacemos clic sobre el botón.
Lo primero es dimensionar las variables que vamos a usar para el cálculo. La variable "date1" almacena el valor del campo fecha inicial y la variable "date2" almacena el valor del campo fecha final. Esas dos variables las hemos definido como fecha.
A continuación dimensionamos la variable "Ndias" como número entero (Integer), ya que va a almacenar el número de días transcurridos entre esas dos fechas. Estas serían las tres líneas para dimensionar las variables:

Dim date1 As Date
Dim date2 As Date
Dim Ndias As Integer

A continuación asignamos a las variables "date1" y "date2" los valores introducidos en los "Datebox" fechaini y fechafin. El código seria este:

date1 = Fechaini.Value
date2 = Fechafin.Value

A continuación usamos la función "DateDiff" que calcula la diferencia entre dos fechas, y a la cual hay que suministrarles varios parámetros entre paréntesis. Tenemos que pasarle en primer lugar la fecha inicial, que sería el valor introducido en la variable "date1". En segundo lugar le pasamos la fecha final "date2", y por último le pasamos un parámetro que indica a la función que calcule el número de días "gb.Day". También podemos usar la misma función con el parámetro "gb.Month" para calcular el número de meses o el parámetro "gb.Year" para calcular el número de años transcurridos. El código sería:

TextBox_Dias.Text = DateDiff(date1, date2, gb.Day)
TextBox_Meses.Text = DateDiff(date1, date2, gb.Month)
TextBox_Anios.Text = DateDiff(date1, date2, gb.Year)



 Tambien podemos usar el objeto LCDLabel, esta clase implementa una etiqueta que muestra su texto como una pantalla LCD. Añadimos el siguiente código:

LCDLabel_Dias.Text = TextBox_Dias.Text
LCDLabel_Meses.Text = TextBox_Meses.Text
LCDLabel_Anios.Text = TextBox_Anios.Text


Tambien hemos añadido el botón "Salir" que tiene el siguientes código:

Public Sub Button_Salir_Click()
  Quit
End


Si queremos probar la aplicación para ver los resultados de nuestro programa, pulsamos el botón "Ejecutar" (Run) situado en el menú de la parte superior:



Al ejecutar la aplicación con el botón "Ejecutar" o "run" pasamos del modo edición al modo ejecución o prueba y obtenemos el siguientes resultado:


Con esto terminamos esta sencilla aplicación, la cual podemos mejorar añadiendo nuevas utilidades, como obtener la fecha que corresponde a sumar un número de días a la fecha actual. Para ello modificamos el formulario de la siguiente forma:



Hemos añadido un DateBox_Fecha1 para introducir la fecha actual, un campo ValueBox para indicar el número de días a sumar, y el resultado lo vamos a poner en el DateBox_Fecha2 que nos dará la fecha final. Para hacer el cálculo hemos añadido un nuevo botón "Button_Calsuma" que contiene el código siguiente:

Public Sub Button_Calsuma_Click()

 Dim date1 As Date
 Dim date2 As Date
 Dim Ndias As Integer

 date1 = DateBox_Fecha1.Value
 date2 = date1 + ValueBox_Dias.Value
 DateBox_Fecha2.Value = date2

End


Ejecutamos la aplicación y probamos añadiendo 100 días a la fecha actual:


Si se os ocurre otra funcionalidad para esta aplicación, espero vuestras sugerencias.