Novità

X luigi ultima del mese

i legend

Premium Member
Ciao luigi
Ho scritto la mia funzione ultima del mese
E corretta secondo te?
Codice:
Function EstrazioneValida (idestr ) 
If idestr < = estrazionefin then EstrazioneValida = true 
End function 
Function  isFineMese ( idestr ) 
Dim EsLim
EsLim =idestr + 1 
If estrazioneValida ( EsLim ) then 
If  mese (EsLim  ) > mese ( idestr )   Then isFineMese =true
Else
If month  (Now )  > mese (idestr )  Then
 isFineMese = true
Else 
IsFineMese =false 
End if
End if
End function
Ciao per il quesito ho usato le funzioni basic
Lo so che le funzioni già esistono
Ma un utente mi ha chiesto la differenza tra
If indicemensile (idestr +1)=1 Then
E
If Isultimadelmese (idestr ) Then
Dopo che gli avevo suggerito la tua ovviamente.
Allora ho provato a scriverla io.
Che ne pensi?
Anche l altra funzione ho riscritto so che esiste isidestrvalido.
Ciao e buona domenica a tutti :)
Potrebbe essere valida?
Funziona solo con il cambio mese ovviamente.
 
Ultima modifica:
Ciao.

Non ho un pc per controllare quanto hai scritto ma secondo me è no.

Ovvero ha i difetti tipici delle altre soluzioni simili.

Devi uscire dal confronto con i limiti del lotto...

e riferirti a quelli del calendario.

Tranne ... la soluzione script del ... non citabile e quella comilata di Luigi...

non ho memoria di altri algoritmii efficaci.

:)
 
Ultima modifica:
Ciao joe
Buona giornata :)
non chiedevo a luigi di svelare il suo Algoritmo.
Rispetto il classico Algoritmo
If indicemensile ( es+1)=1 Then
Che per funzionare necessità della prima estrazione mensile la mia funzione riesce a calcolare l ultima del mese in base al mese. Infatti se io avessi lanciato l Algoritmo il 31 dopo l estrazione non l avrebbe registrata. Ma ieri giorno 1 si.
Non essendo in grado di sapere in anticipo quando sarà l ultima estrazione del mese o se c'è un estrazione speciale ho preso come limite il mese successivo non ho fatto confronti e verifiche , mi ci metto subito. Sono ancora a letto :)
Ciao a dopo.


Hai ragione joe non funziona ho lanciato le due funzioni e i numeri del concorso sono notevolmente differenti.

Luigi non svelare il tuo.
Lascia in po di lavoro anche per noi:)
Ciao:)
 
Ultima modifica:
Legend nemmeno io posso provare ma per me e no...la prima che verifica se idestrvslido non e prooriamente corretta se io passo un valore minore di estrazioni archivio posso passare pure 0 o valori negativi e la funzione tornerebbe ctrue.... nella seconda funzione c e errore anche piu grave...che c entra l istruzione now ? No n ti confondere la data corrente a che ti serve ? Ti devi riferire alla data di idestr che stai testando....ciao
 
Ciao il numero dei concorsi è corretto come si fa a vedere se tutti i risultati sono uguali?
Ecco l Algoritmo
Codice:
Function isFineMese ( idestr ) 
If mese (idestr + 1 ) = 1  And mese (idestr )  < > 1 Then isFineMese = true 
If mese  ( idestr + 1 ) >mese ( idestr ) Then isFineMese = true 
If mese  (idestr +1)=0  And month  (now)> mese (idestr ) Then isFineMese = true 
End function

Mi evidenzia 1738 concorsi e anche l ultimo del
31 /10/2015
Ma non so se nel mezzo ci sono concorsi sbagliati.
Possibile controllare?
Ciao:)
 
Portato le colonne formattate come testo per evitare errori sembra e dico sembra corretto.
Sicuramente non è veloce come l originale.
Nel primo Algoritmo non avevo considerato il mese di gennaio:(
Purtroppo il limite rimane sempre il cambio mese
Se l ultima fisse stata i l 28 /10/2015 avremmo dovuto aspettare novembre per poterla includere.
Ciao::::::::::)))))))))
 
Ciao luigi scusa non avevo visto il tuo post.
Ok il now mi serve come limite di confronto tra la data di fine estrazione e la data corrente.
Sicuramente non scriverò mai il tuo Algoritmo , spostando la barra delle estrazioni sembra funzionare.
Fammi sapere.
E grazie per gli errori che mi hai evidenziato.
La prima era troppo contorta.
A dopo
Anche gli altri se vogliono fare le prove.
In realtà era da un po che ci pensavo
Ka stessa situazione si era presentata in altro forum
Ma non ci ero arrivato.
Ora forse si.
Il now è proprio un errore grave?
Ricordate che sono sempre a letto con il cervello fumante:)
 
Premetto che il tutto l ho letto da cellulare..se non sbaglio tu fai il month di now..quindi ottieni un valore da 1 a 12:che indica il mese corrente...in nessun caso serve sapere il mese corrente..tutto parte da idestr...se hobletto bene la funzione si si yratta di un errore di logica...pero ripeto sono al cellulare con schermo piccolino...
 
In effetti se una persona non aggiornare da molto tempo per forza di cose il mese attuale è maggiore Dell ultimo in archivio. Ci penso su;)
 
Function isFineMese ( idestr )
If mese ( idestr ) = 12 And mese ( idestr + 1 ) = 1 Then isFineMese = true
If mese ( idestr + 1 ) > mese ( idestr ) Then isFineMese = true
If mese ( idestr + 1 ) = 0 and giorno ( idestr ) +1 > giorniMese (idestr ) Then isFineMese = true
End function

Function giorniMese (idestr)
GiorniMese =day ( dateserial ( anno ( idestr ), mese ( idestr ) +1,0))
End function
Forse così funziona provate plesso :)
 
Ultima modifica:
Ciao ... I legend, buona sera a tutte/i.

Secondo me sei proprio sulla stada sbagliata.

Premettiamo che le eccezioni non potrai gestirle ...e mi spiego:

E' il 30 ed è l'ultima estrazione del mese ...

Pacifico ... è l'ultima del mese. Sono tutti daccordo ... che sia l'ultima estrazione del mese.

Poi si sveglia un genio e dice:

E ... se per il 31 ... facessimo una estrazione Extra ? Che ne dite ?

La risposta politica è quasi ovvia: SI.

Si incassano soldini che fannno sempre comodo.

E' ovvio che l' "ultimo giusto" diventa un "ultimo sbagliato".

Quindi, lasciando a parte le eccezioni ... che saranno sempre imprevedibili ...

le estrazioni hanno cadenze sempre regolari +2 giorni + 2giorni +3 giorni ...

oppoi si ripete ... martedì +2 gg = giovedì. Giovedì +2 gg = sabato.

Sabato +3 gg = Martedì ecc. ecc.

Deduci che non è "now" che ti deve interessare ... ma

... il punto nodale su cui focalizzare l'attenzione è il GIORNO dell' estrazione.

Poi dovrai verificare se "+2" o "+3 GIORNI", discrezionalmente come previsto,

... sei ancora .... nello stesso mese. Se no ... è l'ultima.

ANCHE in assenza di estrazioni prevedibili solo teoricamente.

Se-no dovrai SEMPRE aspettare ... la prima del mese successivo.

:) Naturalmente con il placet di Luigi.
 
Ultima modifica:
Ciao joe grazie Dei suggerimenti,
Avevo pensato ai giorni,
Ma li ho esclusi volutamente proprio per le estrazioni imprevedibili.
Es il 29^09/2015 cade di martedì quindi basterebbe fare giorno( idestr )+2> Dell altra funzione

Ma se ci fosse l estrazione straordinaria?
Se le estrazioni aumentassero?
Così a volte bisogna aspettare la prima altre non è necessario.come ottobre.
Cmq provo ad implementare anche questi casi sperando di non incasinarmi:(
Ciao:)
A dopo:)
 
Codice:
Function isFineMese ( idestr ) 
Dim idGiorno 
If  mese ( idestr ) = 12 And mese ( idestr + 1 ) = 1 Then isFineMese = true 
If mese ( idestr + 1 ) > mese ( idestr ) Then isFineMese = true 
If mese ( idestr + 1 ) = 0 then 
IdGiorno = getGiorno ( idestr ) 
If idGiorno = 2  or idGiorno = 4 and giorno ( idestr ) +2 >  giorniMese  (idestr ) Then 
 isFineMese = true 
Elseif idGiorno = 6 and giorno ( idestr ) + 3>giorniMese ( idestr ) Then 
isFineMese = true 
End if 
End if 
End function 

Function  giorniMese (idestr)
GiorniMese =day ( dateserial ( anno ( idestr ), mese ( idestr ) +1,0))
End  function 
Function  getGiorno ( idestr ) 
GetGiorno = WeekDay ( dataestrazione ( idestr, ,,",",vbMonday ) 
End Function
Forse così funziona provate please :)
Codice:
Function isFineMese ( idestr ) 
Dim idGiorno 
If  mese ( idestr ) = 12 And mese ( idestr + 1 ) = 1 Then isFineMese = true 
If mese ( idestr + 1 ) > mese ( idestr ) Then isFineMese = true 
If mese ( idestr + 1 ) = 0 then 
IdGiorno = getGiorno ( idestr ) 
If idGiorno = 2  or idGiorno = 4 and giorno ( idestr ) +2 >  giorniMese  (idestr ) Then 
 isFineMese = true 
Elseif idGiorno = 6 and giorno ( idestr ) + 3>giorniMese ( idestr ) Then 
isFineMese = true 
End if 
End if 
End function 

Function  giorniMese (idestr)
GiorniMese =day ( dateserial ( anno ( idestr ), mese ( idestr ) +1,0))
End  function 
Function  getGiorno ( idestr ) 
GetGiorno = WeekDay ( dataestrazione ( idestr, ,,",",vbMonday ) 
End Function
Forse così funziona provate please :)
Ciao:)

Ciao:)
 
Ciao I legend ...

permettimi alcune premesse: come detto giovedi è sempre due giorni dopo il martedì,

sabato è 2 giorni dopo il giovedì .... e il martedì 3 giorni dopo il sabato.

Questo ... Indipendentemente dal numero dei giorni del mese.

Comunque sia esso, di 28 / 29 / 30 /31 giorni.

Aggiungo che mi sono ricordato che qualcuno aveva fatto una sorta di calendario-futuro in excel.

con +2+2+3 è facile.

Ed anche che la funzione redatta da Luigi ... è gia stata pubblicata tempo fa.

Dunque senza provare le tue nuove routine si avvicinano maggiormente alla soluzione,

ma "il mese" se non introduce errori sicuramente complica molto ... la soluzione.

:)
 
Ciao ...

Ti propongo di osservare nell'output di questo piccolo script ...

... la regolarità di cui accennavo.

Codice:
Sub Main
 For Es = 8975 To EstrazioneFin
  K = K + 1
  DE = CStr(DataEstrazione(Es,True))
  G = Split(DE,",")
  Scrivi FormatSpace(G(0),8),0,0
  Select Case G(0)
  Case "martedì"
   piu = 2
  Case "giovedì"
   piu = 2
  Case "sabato"
   piu = 3
  End Select
  Scrivi "+" & piu
  If K = 3 Then Scrivi String(10,"-") :K = 0
 Next
End Sub

:)
 
Aggiungendo questo codice dopo l'ultimo "next" ...

potrai verificare che in qualunque punto dell' archivio (con 3 estrazioni settimanali) lo script ...

è in grado di calcolare una data prevista per "una prossima estrazione".

Questo ... indipendentemente dal fatto che essa sia presente o meno nell'archivio.

Quindi con questa parte di codice, ho già creato le condizioni, per poter

verificare se ci sarà "cambiamento di mese" ...queste "due" estrazioni.

Codice:
Attuale = DataEstrazione (EstrazioneFin)
Attuale = Replace(Attuale,".","/")
Scrivi Attuale
Rif = Month(Attuale)
Prossima = DateAdd ("d",piu,Attuale)
Scrivi Prossima
Seg = Month(Prossima)
Scrivi Rif & " = " & Seg &" ?"

:)
 
Ultima modifica:
Ciao joe è se ci sono 5 settimane funziona uguale ?
Ho usato la funzione mese perché non volevo utilizzare le funzioni già esistenti
Appartenenti mese
Ti spiego la logica che è la cosa più importante.
Poi corretto questo mi è più facile scrivere un codice anche completamente nuovo.
Allora codice
Codice:
Option Explicit 
Function isFineMese ( idestr ) 
Dim  idGiorno 
If indicemensile ( idestr + 1 ) = 1 Then isFineMese = true 
If idestr + 1 > estrazionefin  then
IdGiorno = getGiorno ( idestr ) 
Select case idGiorno 
Case 2,4
If giorno ( idestr ) + 2 > giorniMese ( idestr ) Then isFineMese = true 
Case 6
If giorno ( idestr ) + 3 > giorniMese ( idestr ) Then isFineMese = true 
End  Select
End if
End  function 
Function giorniMese ( idestr ) 
GiorniMese = day ( dateserial ( anno ( idestr ), mese ( idestr ) + 1,0 ) ) 
End function 
Function getGiorno ( idestr ) 
GetGiorno = WeekDay ( dataestrazione ( idestr, ,,","),vbMonday ) 
End Function

Allora tolto le prime due righe di codice che erano solo per vedere se ero in grado di risolvere utilizzo la funzione indicemensile che esiste la utilizziamo
Allora gestiamo quello che ci serve
Ossia calcolare se l ultima estrazione potrebbe essere fine mese.
Ok comincio con l errore se idestr +1 va fuori range allora interveniamo.
Valutiamo il giorno e in base a questo cosa sommare
Adesso fatto ciò
Quale può essere il termine di paragone?
Io ho pensato ai giorni del mese
Se sono al 27 e il mese di 28 allora se la somma supera È l ultima altrimenti no.
Ecco questa routine è la più breve che ho trovato .
Tu joe come l avresti scritta?
Con il Select case si risparmiano righe ed il codice e anche più leggibile grazie.
Non ho usato il nome del giorno ma il suo indice settimanale non so se usando il basic sia più veloce opure è meglio usare split.
Al massimo è una riga si fa presto a cambiare.
In alternativa che logica si dovrebbe seguire?
Grazie:)
Luigi ha già reso pubblico l Algoritmo?
Non mi stupisce.
Ciao:)
So che questo post non è utile per i molti perché la funzione esiste per questo vi ringrazio per i suggerimenti ed il tempo che mi dedicate.
Grazie di cuore.;)
 
Lanciata ed è 4 secondi più lenta di quella di luigi.
Immagina se dovessi utilizzarla per calcolare qualcosa quanto diventerebbe più lenta.
.
Ciao:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    giovedì 23 gennaio 2025
    Bari
    86
    50
    83
    38
    78
    Cagliari
    11
    36
    52
    31
    74
    Firenze
    56
    59
    86
    27
    84
    Genova
    03
    61
    53
    11
    38
    Milano
    13
    14
    79
    87
    47
    Napoli
    21
    90
    48
    55
    37
    Palermo
    56
    46
    59
    02
    53
    Roma
    74
    13
    07
    38
    77
    Torino
    27
    54
    62
    36
    81
    Venezia
    09
    14
    69
    28
    62
    Nazionale
    32
    73
    27
    11
    51
    Estrazione Simbolotto
    Bari
    36
    27
    19
    08
    24

Ultimi Messaggi

Indietro
Alto