Italian Giorni dell'anno senza feste

Discussion in 'Italian Forum' started by Nikeddy, Apr 10, 2018.

  1. LucaMs

    LucaMs Expert Licensed User

    Come dicevano in un telefilm, riguardo a cosa fare il giorno successivo però:

    "Come sei ottimista"

    (nel senso: "chissà se ci arriviamo a domani" :p)

    Io per Pasqua 2019 sarò in un altro mondo quasi certamente.
     
  2. LucaMs

    LucaMs Expert Licensed User

    Mi sa tanto che quelle funzioni VBA siano errate; anche a IsFestivo, usata in Excel, restituisce valori sballati.
     
  3. LucaMs

    LucaMs Expert Licensed User

    Va beh, è solo un elenco di festività, giorno-mese, si può rifare facilmente... (aggiungerò qui, non un nuovo post)
     
  4. LucaMs

    LucaMs Expert Licensed User

    Invece, nuovo post.

    Usa la funzione GetEasterSunday indicata nel post #19 per calcolare la data di Pasqua.

    Code:
    ' Passare la data in formato gg-MM-aaaa.
    Public Sub isFestivo(Data As String, Roma As Boolean) As Boolean
       
    Dim Festivo As Boolean

       
    Dim PrevDateFormat As String = DateTime.DateFormat
       
    DateTime.DateFormat = "dd-MM-yyyy"

       
    Dim GiornoData, MeseData, AnnoData As Int
       
    Dim DataTicks As Long
       DataTicks = 
    DateTime.DateParse(Data)
       AnnoData = 
    DateTime.GetYear(DataTicks)
       GiornoData = 
    DateTime.GetDayOfMonth(DataTicks)
       MeseData = 
    DateTime.GetMonth(DataTicks)
     
       
    Dim Domenica As Boolean
       Domenica = (
    DateTime.GetDayOfWeek(DataTicks) = 1)
     
       
    Dim DataPasqua As String
       
    Dim GiornoPasqua, MesePasqua As Int
       
    Dim PasquaTicks As Long
       
    DateTime.DateFormat = "MM-dd-yyyy"
       DataPasqua = GetEasterSunday(AnnoData, 
    "")
       PasquaTicks = 
    DateTime.DateParse(DataPasqua)
       GiornoPasqua = 
    DateTime.GetDayOfMonth(PasquaTicks)
       MesePasqua = 
    DateTime.GetMonth(PasquaTicks)
     
       
    Dim lstFestivi As List
       lstFestivi.Initialize
       
    Dim GiornoMesePasqua As String
       GiornoMesePasqua = GiornoPasqua & 
    "-" & MesePasqua

       GiornoMeseFestaRoma 
    As String = ""
       
    If Roma then
            GiornoMeseFestaRoma = 
    "29-6"
       
    End If

       lstFestivi.AddAll(
    Array As String("1-1""6-1""25-04""1-5""2-6""15-8""1-11""8-12""25-12""26-12", GiornoMesePasqua, GiornoMeseFestaRoma))
     
       
    Dim GiornoMeseData As String
       GiornoMeseData = GiornoData & 
    "-" & MeseData

       Festivo = (lstFestivi.IndexOf(GiornoMeseData) > - 
    1Or Domenica
       
    DateTime.DateFormat = PrevDateFormat
       
    Return Festivo
    End Sub

    Non ho aggiunto il 29 giugno; ti basta aggiungerlo nella lstFestivi come "29-6".

    Aggiunto anche il 29 giugno.
     
    Last edited: Apr 10, 2018
  5. maXim

    maXim Active Member Licensed User

    Ciao Nikeddy,

    guarda il metodo
    CountWorkdaysFromDates (ma ce ne sono anche altri che potrebbero esserti utili) della classe fDATE presente nella libreria db2000 eXtrafunctions...
     
  6. LucaMs

    LucaMs Expert Licensed User

    Eh, passato il mal di testa... manca il giorno di pasquetta.
    Inoltre, manca ciò che @Nikeddy richiedeva specificatamente, ovvero calcolare i giorni lavorativi di un determinato mese.
    Fo colazione e poi pubblicherò un modulo completo.
     
  7. maXim

    maXim Active Member Licensed User

    ... vedere sopra...;)
     
  8. LucaMs

    LucaMs Expert Licensed User

    Visto (il post), stavamo scrivendo contemporaneamente :)
     
  9. LucaMs

    LucaMs Expert Licensed User

    Allgato. Non testato a fondo (ma dovrebbe essere ok).
     

    Attached Files:

  10. Nikeddy

    Nikeddy Active Member Licensed User

    meraviglia,

    domanda xo:

    xche se provo a compilarlo mi esce

    "riferimento a un oggetto non impostato su un istanza di oggetto" ?
     
  11. LucaMs

    LucaMs Expert Licensed User

    Il progetto che ho allegato? Così com'è? A me funziona.

    Lancialo in modalità debug e pubblica l'errore.
     
  12. Nikeddy

    Nikeddy Active Member Licensed User

    credo sia b4a (7.8) che devo aggiornarlo?
     
  13. LucaMs

    LucaMs Expert Licensed User

    Ma non lo compila proprio o durante l'esecuzione viene generato un errore?

    Cmq ora provo con la 7.80...
     
  14. Nikeddy

    Nikeddy Active Member Licensed User

    proprio mentre premo "play"
     
  15. LucaMs

    LucaMs Expert Licensed User

    Eh si, con la 7.80 non lo compila... wait a second... :D
     
  16. Nikeddy

    Nikeddy Active Member Licensed User

  17. LucaMs

    LucaMs Expert Licensed User

    versione per b4a 7.80.
     

    Attached Files:

Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice