Italian Giorni dell'anno senza feste

LucaMs

Expert
Licensed User
Ora che puoi calcolare con precisione Pasqua dell'anno prossimo, prenoti per tutti un agriturismo, un posticino carino per "Pasquetta"? :D
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.
 

LucaMs

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

LucaMs

Expert
Licensed User
Mi sa tanto che quelle funzioni VBA siano errate; anche a IsFestivo, usata in Excel, restituisce valori sballati.
Va beh, è solo un elenco di festività, giorno-mese, si può rifare facilmente... (aggiungerò qui, non un nuovo post)
 

LucaMs

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

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

B4X:
' 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) > - 1) Or Domenica
   DateTime.DateFormat = PrevDateFormat
   Return Festivo
End Sub

ed essendo di Roma anche il 29 giugno..
Non ho aggiunto il 29 giugno; ti basta aggiungerlo nella lstFestivi come "29-6".

Aggiunto anche il 29 giugno.
 
Last edited:

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.
 

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" ?
 

LucaMs

Expert
Licensed User
meraviglia,

domanda xo:

xche se provo a compilarlo mi esce

"riferimento a un oggetto non impostato su un istanza di oggetto" ?
Il progetto che ho allegato? Così com'è? A me funziona.

Lancialo in modalità debug e pubblica l'errore.
 
Top