Gambas-it

Gambas3 => Programmazione => Topic aperto da: dex - 07 Dicembre 2019, 01:05:53

Titolo: [Risolto] incrementare data di un mese
Inserito da: dex - 07 Dicembre 2019, 01:05:53
ciao raga

mi sono incartato, mi date una mano a risolvere

devo inserire in 12 label mese ed anno incrementando di un mese dalla data attuale

esempio data attuale 07/12/2019

Codice: [Seleziona]
Label1.caption = Format(Date(Now), "mm/yyyy")

nella label1 mi da "12/2019"
nella label2 mi deve dare "01/2020"
nella label3 mi deve dare "02/2020"

e cosi via

dalla label2 in poi come faccio ad incrementare di un mese  Format(Date(Now), "mm/yyyy")?


Titolo: Re:incrementare data di un mese
Inserito da: vuott - 07 Dicembre 2019, 01:15:08
...devi anche stare attento all'anno bisestile !
Titolo: Re:incrementare data di un mese
Inserito da: vuott - 07 Dicembre 2019, 03:29:26
Ad ogni modo io credo che tu debba servirti della funzione DateDiff( ):

https://www.gambas-it.org/wiki/index.php?title=Calcolare_il_numero_di_giorni_compresi_fra_due_date
Titolo: Re:incrementare data di un mese
Inserito da: dex - 07 Dicembre 2019, 19:36:52
grazie vuott

pensavo che ci fosse un modo più veloce, ma dato che a me serve solo creare stringhe ho risolto alla vecchia maniera.

select case e un po di codice scritto

Codice: [Seleziona]
Private Sub CalcolaMese()
 
  Dim mese As Integer
  Dim anno As Integer
 
  mese = Month(DateBox1.value)
  anno = Year(DateBox1.value)
 
  MyMese.Clear
 
  Select Case mese
   
    Case 1
       
       MyMese.Add("01/" & anno)
       MyMese.Add("02/" & anno)
       MyMese.Add("03/" & anno)
       MyMese.Add("04/" & anno)
       MyMese.Add("05/" & anno)
       MyMese.Add("06/" & anno)
       MyMese.Add("07/" & anno)
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
     
    Case 2
           
       MyMese.Add("02/" & anno)
       MyMese.Add("03/" & anno)
       MyMese.Add("04/" & anno)
       MyMese.Add("05/" & anno)
       MyMese.Add("06/" & anno)
       MyMese.Add("07/" & anno)
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       
    Case 3
       
       MyMese.Add("03/" & anno)
       MyMese.Add("04/" & anno)
       MyMese.Add("05/" & anno)
       MyMese.Add("06/" & anno)
       MyMese.Add("07/" & anno)
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
           
    Case 4
       
       MyMese.Add("04/" & anno)
       MyMese.Add("05/" & anno)
       MyMese.Add("06/" & anno)
       MyMese.Add("07/" & anno)
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
   
    Case 5
       
       MyMese.Add("05/" & anno)
       MyMese.Add("06/" & anno)
       MyMese.Add("07/" & anno)
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       
    Case 6
       
       MyMese.Add("06/" & anno)
       MyMese.Add("07/" & anno)
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       MyMese.Add("05/" & (anno + 1))
       
    Case 7
       
       MyMese.Add("07/" & anno)
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       MyMese.Add("05/" & (anno + 1))
       MyMese.Add("06/" & (anno + 1))
   
    Case 8
       
       MyMese.Add("08/" & anno)
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       MyMese.Add("05/" & (anno + 1))
       MyMese.Add("06/" & (anno + 1))
       MyMese.Add("07/" & (anno + 1))
   
    Case 9
       
       MyMese.Add("09/" & anno)
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       MyMese.Add("05/" & (anno + 1))
       MyMese.Add("06/" & (anno + 1))
       MyMese.Add("07/" & (anno + 1))
       MyMese.Add("08/" & (anno + 1))
       
    Case 10
       
       MyMese.Add("10/" & anno)
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       MyMese.Add("05/" & (anno + 1))
       MyMese.Add("06/" & (anno + 1))
       MyMese.Add("07/" & (anno + 1))
       MyMese.Add("08/" & (anno + 1))
       MyMese.Add("09/" & (anno + 1))
       
    Case 11
       
       MyMese.Add("11/" & anno)
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       MyMese.Add("05/" & (anno + 1))
       MyMese.Add("06/" & (anno + 1))
       MyMese.Add("07/" & (anno + 1))
       MyMese.Add("08/" & (anno + 1))
       MyMese.Add("09/" & (anno + 1))
       MyMese.Add("10/" & (anno + 1))
       
    Case 12
       
       MyMese.Add("12/" & anno)
       MyMese.Add("01/" & (anno + 1))
       MyMese.Add("02/" & (anno + 1))
       MyMese.Add("03/" & (anno + 1))
       MyMese.Add("04/" & (anno + 1))
       MyMese.Add("05/" & (anno + 1))
       MyMese.Add("06/" & (anno + 1))
       MyMese.Add("07/" & (anno + 1))
       MyMese.Add("08/" & (anno + 1))
       MyMese.Add("09/" & (anno + 1))
       MyMese.Add("10/" & (anno + 1))
       MyMese.Add("11/" & (anno + 1))
             
  End Select
 
 
End

by alla prossima
Titolo: Re:[Risolto] incrementare data di un mese
Inserito da: vuott - 07 Dicembre 2019, 21:05:11
(https://cdn3.whatculture.com/images/2018/04/9b89b4d100237225-600x338.gif)
Titolo: Re:[Risolto] incrementare data di un mese
Inserito da: dex - 08 Dicembre 2019, 11:58:39
 
(https://cdn3.whatculture.com/images/2018/04/9b89b4d100237225-600x338.gif)

 ;D ;D ;D ;D

 :2birre:
Titolo: Re:[Risolto] incrementare data di un mese
Inserito da: naderit - 12 Dicembre 2019, 22:14:23
Ciao mi sono trovato ad affrontare più o meno lo stesso problema il seguente è un test di prova
Codice: [Seleziona]
Public Sub ComboBox1_Click()
Dim gdate As String

  gdate = Format(DateAdd(Date, gb.day, CInt(ComboBox1.Text)), "yyyy-mm-dd hh-nn-ss")
  Label1.Text = gdate
 
End

nel combobox inserisci numeri da 10 a 30 in label1 viene restituita la data
il seguente è il calcolo dell'anno bisestile
Codice: [Seleziona]
Public Function anno_bisestile(anbis As Integer) As Boolean
'calcolo anno bisestile
 Dim bisestile As Boolean
 
 If Right$(CStr(anbis), 2) = "00" And Frac(anbis / 400) = 0 Then
  bisestile = True
   Else If Right$(CStr(anbis), 2) <> "00" And Frac(anbis / 4) = 0 Then
  bisestile = True
  Else
 bisestile = False
 End If
 Return bisestile
 End

 :ciao:
Titolo: Re:[Risolto] incrementare data di un mese
Inserito da: Top Fuel - 13 Dicembre 2019, 21:03:58
Puoi usare anche MOD:

Codice: [Seleziona]
If Right$(CStr(anbis), 2) = "00" And anbis MOD 400 = 0 Then
  bisestile = True
   Else If Right$(CStr(anbis), 2) <> "00" And anbis MOD 4 = 0 Then
  bisestile = True
  Else
 bisestile = False
 End If
Titolo: Re:[Risolto] incrementare data di un mese
Inserito da: dex - 14 Dicembre 2019, 23:57:27
Interessante  :ok: