Autore Topic: [Risolto] incrementare data di un mese  (Letto 2554 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
[Risolto] incrementare data di un mese
« il: 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")?


« Ultima modifica: 07 Dicembre 2019, 19:37:40 da dex »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:incrementare data di un mese
« Risposta #1 il: 07 Dicembre 2019, 01:15:08 »
...devi anche stare attento all'anno bisestile !
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:incrementare data di un mese
« Risposta #2 il: 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
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re:incrementare data di un mese
« Risposta #3 il: 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
« Ultima modifica: 07 Dicembre 2019, 19:39:35 da dex »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:[Risolto] incrementare data di un mese
« Risposta #4 il: 07 Dicembre 2019, 21:05:11 »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo

Offline naderit

  • Grande Gambero
  • ***
  • Post: 140
    • Mostra profilo
Re:[Risolto] incrementare data di un mese
« Risposta #6 il: 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:

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re:[Risolto] incrementare data di un mese
« Risposta #7 il: 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
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re:[Risolto] incrementare data di un mese
« Risposta #8 il: 14 Dicembre 2019, 23:57:27 »
Interessante  :ok: