Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    [1.1 VB] Calcolare il numero di giornate lavorative

    Esiste qualcosa nel framework che si per lo meno si avvicini al calcolo del numero delle giornate lavorative fra due date ?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: [1.1 VB] Calcolare il numero di giornate lavorative

    Originariamente inviato da djciko
    Esiste qualcosa nel framework che si per lo meno si avvicini al calcolo del numero delle giornate lavorative fra due date ?

    si si basta calcolare la differenza in giorni tra due date; poi togliere tutti i sabati e le domeniche, e anche le feste
    Pietro

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Re: Re: [1.1 VB] Calcolare il numero di giornate lavorative

    Originariamente inviato da pietro09
    si si basta calcolare la differenza in giorni tra due date; poi togliere tutti i sabati e le domeniche, e anche le feste
    DAVVERO ??? Accidenti era facile..........

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Re: Re: [1.1 VB] Calcolare il numero di giornate lavorative

    Originariamente inviato da djciko
    DAVVERO ??? Accidenti era facile..........
    :quote:
    facile quanto far funzionare VisualStudio 2005 con Panda antivirus

    Pietro

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
        Public Function isFestivo(ByVal giorno As String, ByVal mese As Integer) As Boolean
            Dim appo As DateTime
            Dim mess As Boolean
            Dim ggPasquetta As Integer
            Dim mmPasquetta As Integer
            Dim dayPasquetta As String
    
            dayPasquetta = Calcolo_Pasquetta(Year(Now))
            mmPasquetta = dayPasquetta.Substring(0, 2)
            ggPasquetta = dayPasquetta.Substring(3)
            mess = False
    
            If IsDate(giorno.ToString + "/" + mese.ToString + "/" + Year(Date.Now).ToString) Then
                appo = giorno.ToString + "/" + mese.ToString + "/" + Year(Date.Now).ToString
                If (mmPasquetta = mese And (ggPasquetta = giorno Or ggPasquetta + 1 = giorno)) Or _
                      (giorno.ToString = 1 And mese.ToString = 1) Or _
                      (giorno.ToString = 6 And mese.ToString = 1) Or _
                      (giorno.ToString = 25 And mese.ToString = 4) Or _
                      (giorno.ToString = 1 And mese.ToString = 5) Or _
                      (giorno.ToString = 2 And mese.ToString = 6) Or _
                      (giorno.ToString = 29 And mese.ToString = 6) Or _
                      (giorno.ToString = 15 And mese.ToString = 8) Or _
                      (giorno.ToString = 1 And mese.ToString = 11) Or _
                      (giorno.ToString = 8 And mese.ToString = 12) Or _
                      (giorno.ToString = 25 And mese.ToString = 12) Or _
                      (giorno.ToString = 26 And mese.ToString = 12) Or _
                      appo.DayOfWeek() = DayOfWeek.Saturday Or appo.DayOfWeek() = DayOfWeek.Sunday Then
                    'è sabato o domenica
                    mess = True
                End If
            ElseIf Not IsDate(giorno.ToString + "/" + mese.ToString + "/" + Year(Date.Now).ToString) And _
                IsNumeric(giorno) Then
                'Non è un giorno facente parte del mese(es: se il mese è di 30 il 31/mese/anno nn fa parte del mese)
                mess = True
            End If
            Return mess
        End Function
    
        Public Function Calcolo_Pasquetta(ByVal iAnno As Integer) As String
            Dim a, b, c, d, e, m, n, giorni As Integer
            Dim giorno, mese As String
    
            Select Case iAnno
                Case 30 To 1582
                    m = 15
                    n = 6
                Case 1700 To 1799
                    m = 23
                    n = 3
                Case 1800 To 1899
                    m = 23
                    n = 4
                Case 1900 To 2099
                    m = 24
                    n = 5
                Case 2100 To 2199
                    m = 24
                    n = 6
                Case 2200 To 2299
                    m = 25
                    n = 0
                Case 2300 To 2399
                    m = 26
                    n = 1
                Case 2400 To 2499
                    m = 25
                    n = 1
            End Select
    
    
            a = iAnno Mod 4
            b = iAnno Mod 7
            c = iAnno Mod 19
            d = (19 * c + m) Mod 30
            e = (2 * a + 4 * b + 6 * d + n) Mod 7
    
            giorni = 22 + d + e
    
            If (giorni <= 31) Then
                giorno = giorni
                mese = 3
            End If
    
            If (giorni = 57 And d = 29 And e = 6) Or (giorni = 56 And c > 10 And d = 28 And e = 6) Then
                giorno = giorni - 38
                mese = 4
            End If
    
            If giorni > 31 Then
                giorno = giorni - 31
                mese = 4
            End If
    
            If (mese.ToString).Length = 1 Then
                mese = CType(0, String) + CType(mese, String)
            End If
            If (giorno.ToString).Length = 1 Then
                giorno = "0" + giorno.ToString
            End If
            Calcolo_Pasquetta = mese & "|" & giorno
        End Function
    dovrebbe andare, anche con Panda Antivirus attivato

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    boh! ci stavo provando anch'io mi togli tutto il piacere :rollo:
    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ho riadattato una parte di codice fatta da colleghi e l'ho completata...vedi un po'...ho testato col 25 dicembre e restituisce True con dei regalini infiocchettati..

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    ho riadattato una parte di codice fatta da colleghi e l'ho completata...vedi un po'...ho testato col 25 dicembre e restituisce True con dei regalini infiocchettati..
    Testala col 30 ottobre 2006: dalle nostre parti era festa
    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    (giorno.ToString = 30 And mese.ToString = 10) Or _
    .
    .


  10. #10
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    in pratica le feste le mettete tutte qui dentro ???

    Codice PHP:
    (giorno.ToString And mese.ToString 1) Or _
                      
    (giorno.ToString And mese.ToString 1) Or _
                      
    (giorno.ToString 25 And mese.ToString 4) Or _
                      
    (giorno.ToString And mese.ToString 5) Or _
                      
    (giorno.ToString And mese.ToString 6) Or _
                      
    (giorno.ToString 29 And mese.ToString 6) Or _
                      
    (giorno.ToString 15 And mese.ToString 8) Or _
                      
    (giorno.ToString And mese.ToString 11) Or _
                      
    (giorno.ToString And mese.ToString 12) Or _
                      
    (giorno.ToString 25 And mese.ToString 12) Or _
                      
    (giorno.ToString 26 And mese.ToString 12) Or 

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.