Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [VB 2010] funzione che restituisce giorni che intercorrono tra due date

    Salve non so come fare io sono arrivato qui a confrontare i giorni mediante l'algoritmo del calendario giuliano (es. il primo febbraio e' il 32 esimo giorno dell'anno)

    codice:
    Function bisestile(ByVal anno As Integer) As Boolean
            If (anno Mod 400 = 0 Or (anno Mod 100 <> 0 And anno Mod 4 = 0)) Then
                bisestile = True
            Else
                bisestile = False
            End If
                return bisestile
        End Function
    
    
        Function giorni(ByVal mese As String, ByVal anno As Integer) As Integer
            Select Case LCase(mese)
                Case "gennaio", "marzo", "maggio", "luglio", "agosto", "ottobre", "dicembre"
                    giorni = 31
                Case "aprile", "giugno", "settembre", "novembre"
                    giorni = 30
                Case "febbraio"
                    If bisestile(anno) = True Then
                        giorni = 29
                    Else
                        giorni = 28
                    End If
            End Select
            Return giorni
        End Function
    
    
        Function giuliano(ByVal giorno As Integer, ByVal mese As String, ByVal anno As Integer) As Integer
            Dim g, g_feb As Integer
    
    
            g_feb = giorni(mese, anno) 'funzione che stabilisce quanti giorni ha un mese (anche se l'anno è bisestile)
    
    
            Select Case LCase(mese)
                Case "gennaio"
                    g = 1 * giorno
                Case "febbraio"
                    g = 31 + giorno
                Case "marzo"
                    g = giorno + 31 + g_feb + 31
                Case "aprile"
                    g = giorno + 31 + g_feb + 31 + 31
                Case "maggio"
                    g = giorno + 31 + g_feb + 31 + 31 + 30
                Case "giugno"
                    g = giorno + 31 + g_feb + 31 + 31 + 30 + 31
                Case "luglio"
                    g = giorno + 31 + g_feb + 31 + 31 + 30 + 31 + 30
                Case "agosto"
                    g = giorno + 31 + g_feb + 31 + 31 + 30 + 31 + 30 + 31
                Case "settembre"
                    g = giorno + 31 + g_feb + 31 + 31 + 30 + 31 + 30 + 31 + 31
                Case "ottobre"
                    g = giorno + 31 + g_feb + 31 + 31 + 30 + 31 + 30 + 31 + 31 + 30
                Case "novembre"
                    g = giorno + 31 + g_feb + 31 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31
                Case "dicembre"
                    g = giorno + 31 + g_feb + 31 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30
            End Select
            Return g
        End Function
    
    
    Function confronto_date(ByVal g1 As Integer, ByVal m1 As String, ByVal a1 As Integer, ByVal g2 As Integer, ByVal m2 As String, ByVal a2 As Integer) As Integer
            Dim data1, data2 As Integer
            data1 = giuliano(g1, m1, a1)
            data2 = giuliano(g2, m2, a2)
    
    
            ?
            ?
            ?

    grazie a chi mi aiutera'
    Ultima modifica di LeleFT; 02-01-2015 a 10:19 Motivo: Aggiunti i tag CODE

  2. #2
    Non so ancora utilizzare gli array perciò se potreste non utilizzarli ne sarei grato

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327
    Visual Basic ha un forum dedicato. Inoltre, devi specificare la versione di VB che stai usando (ne esistono molte, tutte diverse).
    Il codice va postato all'interno degli appositi tag CODE, per mantenere indentazione e formattazione.


    Sposto e correggo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Che versione di VB utilizzi ??

  5. #5
    grazie leleFT, comunque uso visual basic 2010 express... è gratuito

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Se usi VB.NET dai un'occhiata all'oggetto Span, è quello che fa per te, ti permette di fare la sottrazione di due date e trovare quindi il numero di giorni che intercorre tra una data e l'altra.

    Sergio

  7. #7
    mi spiace ma nel VB che ho io non c'è Span

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Scusa, ho sbagliato io, si chiama TimeSpan

  9. #9
    SirJo che cosa bisogna passarli tra parentesi? il giorno mese e anno della prima data e poi il giorno mese e anno della seconda?

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.