Newsgroup: it.comp.lang.visual-basic
Titolo: giorni del mese

ciao
come faccio a calcolare la lunghezza (in giorni) di un mese qualsiasi?
grazie
ciao

Non credo che ci sia una funzione specifica... Dovresti fartene una...
Prova con questa:
Public Function GiorniNelMese(Mese as byte, Anno as integer) as byte
    select case mese
      case 1
        GiorniNelMese=31
      case 2
        if anno mod 4 =0 and not (anno mod 100 =0  and not anno mod 400 =0 )
          GiorniNelMese=29
        else
          GiorniNelMese=28
        end if
      case 3
        GiorniNelMese=31
      case 4
        GiorniNelMese=30
      case 5
        GiorniNelMese=31
      case 6
        GiorniNelMese=30
      case 7
        GiorniNelMese=31
      case 8
        GiorniNelMese=31
      case 9
        GiorniNelMese=30
      case 10
        GiorniNelMese=31
      case 11
        GiorniNelMese=30
      case 12
        GiorniNelMese=31
    end select
End Sub
Dovrebbe funzionare... ma non l'ho provata... quindi fammi sapere...
            Ciao
                Allanon
tirocinio ha scritto nel messaggio ...


 come faccio a calcolare la lunghezza (in giorni) di un mese qualsiasi?
Option Explicit
Public Function FineMese( _
  ByVal Data _
)
  On Error Resume Next
  FineMese = DateSerial(Year(Data), Month(Data) + 1, 1) - 1
End Function
Sub Main( _
)
  Dim Giorno
  Dim UltimoGiorno
  Giorno = "28/11/2000"
  UltimoGiorno = FineMese(Giorno)
  If IsEmpty(UltimoGiorno) Then
    Debug.Print "'"; Giorno; "': data non valida."
  Else
    Debug.Print _
        StrConv(Format$(Giorno, "mmmm"), vbProperCase) _
      ; " "; Format$(Giorno, "yyyy") _
      ; " ha "; Format$(UltimoGiorno, "d"); " giorni."
  End If
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

come faccio a calcolare la lunghezza (in giorni) di un mese qualsiasi?
Il mese e' contenuto in Mese, Limite contiene la lunghezza in giorni.
Bisogna anche sapere l'anno (variabile Anno)
Select Case Mese
   Case 1, 3, 5, 7, 8, 10, 12: Limite = 31
   Case 4, 6, 9, 11: Limite = 30
   Case 2: If (Anno Mod 100 = 0) And (Anno Mod 400 <> 0) Then Limite =
28 Else: If Anno Mod 4 = 0 Then Limite = 29 Else Limite = 28
   End Select
--
ICQ: 76485267
"Non si e' mai troppo magri, troppo ricchi o troppo armati."

Pork... non ci avevo pensato cosě... Mi hai fatto fare una figuraccia...
:-P   [:-)
        Allanon

 :-P   [:-)
Io?... ;-))
Vuoi una battuta o un discorso serio? Beh, la battuta l'ho gia` scritta qui
sopra, allora il discorso serio: io di figuracce ne ho gia` fatte tante ma
spero di farne ancora di piu` perche' ho notato che poi sono quelle le cose
che ricordo meglio...
Nel nostro caso particolare non sarei cosi` drammatico: considera che chi ci
legge e` un pubblico estremamente variegato; alcuni sono veramente
all'inizio e certe funzioni appena un po' complesse non le reggono e spesso
preferiscono soluzioni magari piu` farraginose ma sulle quali possano avere
un controllo totale. Poi, col tempo e l'esperienza, ... <aggiungi qui un
opportuno luogo comune di tuo gusto>.


 > Public Function GiorniNelMese(Mese as byte, Anno as integer) as byte
[...]
Allanon!... Visto? Che t'avevo detto?...


Mi accontentavo della battuta :-)
Per fortuna faccio un sacco di figuracce...
Ho imparato Visual Basic nel tempo libero... ed ora é diventato la mia
professione, non ho mai seguito un corso quindi le mie conoscenze sebbene
discrete sono piuttosto "lacunarie"...
Da quando frequento newsgroup ho imparato 1000 cose nuove grazie a te (che
se non sbaglio mi hai già dato più di una risposta) e ad altri 100 "mostri
sacri" del Visual basic...
Quindi mi sembra giusto per il logico funzionamento del newsgroup che
ciascuno cerchi di rispondere dove possibile... e se poi faccio le figuracce
meglio... vuol dire che imparo qualcosa di nuovo no?
        Grazie...
                Allanon

come faccio a calcolare la lunghezza (in giorni) di un mese qualsiasi?
Il mese e' contenuto in Mese, Limite contiene la lunghezza in giorni.
