Conoscere il numero di giorni posseduti da un mese

Da Gambas-it.org - Wikipedia.

Per conoscere il numero di giorni posseduti da un mese, si potranno adottare alcune modalità.

Uso delle sole risorse native di Gambas

Si potrà fare uso delle sole risorse native di Gambas, come segue.

Uso del Metodo "Date.DaysInMonth()"

Il Metodo ".DaysInMonth()" della Classe Date ritorna il numero di giorni presenti in un mese di un anno specifico:

 Print Date.DaysInMonth(2, 1968)

Mediante un algoritmo

In questo caso si dovrà avere cura di individuare gli anni bisestili:

Public Sub Form_Open()
 
 Dim ann0 As Integer = 1968
 Dim mesi As Byte[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
 Dim add As Byte
  
  If (anno Mod 4 = 0 And anno Mod 100 <> 0) Or (anno Mod 400 = 0) Then add = 1
  
' Verifichiamo la quantità di giorni posseduti dal mese di febbraio dell'anno 1968:
  Print mesi[2] + add
  
End


Uso della funzione esterna g_date_get_days_in_month( ) di Glib-2.0

Si potrà anche fare uso della funzione esterna g_date_get_days_in_month( ) dell'API di Glib-2.0.so.0.6400.6 .

Mostriamo di seguito un esempio pratico:

Library "libglib-2.0:0.6400.6"

' guint8 g_date_get_days_in_month (GDateMonth month, GDateYear year)
' Returns the number of days in a month, taking leap years into account.
Private Extern g_date_get_days_in_month(GDmonth As Integer, GDyear As Integer) As Byte


Public Sub Main()
 
 Dim num As Byte
 Dim mese As String
 Dim mesi As String[] = [Null, "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno",
                         "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"]
 
 mese = "Febbraio"      ' ...oppure anche: mese = mesi[2]
 
 num = g_date_get_days_in_month(mesi.Find(mese), 2016)
   
 Print "Il mese di "; mese; " contiene "; num; " giorni."
  
End