Newsgroup: it.comp.appl.access
Titolo: ricavare primo e ultimo giorno settimana

è possibile ricavare dal numero della settimana il primo e l'ultimo giorno
esempio:
il giorno 20/08/2003 appartiene alla settimana 34 (numero ricavato con
datepart) e il primo giorno è il 18/08/2003 e l'ultimo è il 24/08/2003
ciao a tutti
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ciao a tutti
weekday() ti restituisce il numero corrispondente al giorno della settimana.
Sib


Senza usare la Datepart, puoi più agevolmente usare la funzione Weekday;
ad es, se hai tre controlli chiamati Dataintermedia, Datalunedi e Datadomenica
potrai scrivere:
Private Sub Dataintermedia_AfterUpdate()
    Dim InizioSett, FineSett As Integer
    InizioSett = Weekday(Dataintermedia, 2) - 1
    DataLunedi = Dataintermedia - InizioSett
    FineSett = 7 - Weekday(Dataintermedia, 2)
    DataDomenica = Dataintermedia + FineSett
End Sub
Ciao
Galliano.


Se la variabile di tipo Data/ora che contiene la data di riferimento (nel
tuo esempio 20/8/2003) si chiama MiaData.
Se la variabile di tipo Data/ora nella quale vuoi la data del primo lunedě
precedente la data di riferimento si chiama Lunedě.
Se la variabile di tipo Data/ora nella quale vuoi la data della prima
domenica seguente la data di riferimento si chiama Domenica.
Prova con questo codice VBA:
Dim DataLun As Date
Dim DataDom As Date
For DataLun = MiaData To MiaData - 7 Step -1
    If WeekDay(DataLun) = 2 Then
        Lunedě = DataLun
        Exit For
    End If
Next DataLun
For DataDom = MiaData To MiaData + 7
    If WeekDay(DataDom) = 1 Then
        Domenica = DataDom
        Exit For
    End If
Next DataDom
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:bhqoeu$kvi$1...@news.newsland.it...

Qualche anno fa scrissi questa funzione che ti potrà essere utile
Public Function PrimoGiornoSettimana(dataInput As Date) As Date
   Dim GiornoSettimana As Integer
   ' nota bene 1 corrisponde a domenica e 6 a sabato per default, mentre in
questa funzione
   ' ha assunto che il primo giorno della settimana corrisponde a lunedì
   GiornoSettimana = DatePart("w", dataInput, vbMonday)
   PrimoGiornoSettimana = dataInput
   Select Case GiornoSettimana
      Case 1
        PrimoGiornoSettimana = DateSerial(Year(dataInput), Month(dataInput),
Day(dataInput))
      Case 2
        PrimoGiornoSettimana = DateSerial(Year(dataInput), Month(dataInput),
Day(dataInput) - 1)
      Case 3
        PrimoGiornoSettimana = DateSerial(Year(dataInput), Month(dataInput),
Day(dataInput) - 2)
      Case 4
        PrimoGiornoSettimana = DateSerial(Year(dataInput), Month(dataInput),
Day(dataInput) - 3)
      Case 5
        PrimoGiornoSettimana = DateSerial(Year(dataInput), Month(dataInput),
Day(dataInput) - 4)
      Case 6
        PrimoGiornoSettimana = DateSerial(Year(dataInput), Month(dataInput),
Day(dataInput) - 5)
      Case 7
        PrimoGiornoSettimana = DateSerial(Year(dataInput), Month(dataInput),
Day(dataInput) - 6)
   End Select
End Function
PrimoGiornoSettimana(MiaData) ti restituisce il primo giorno mentre
PrimoGiornoSettimana(MiaData + 5) ti restituisce l'ultimo giorno
Ciao

 ciao a tutti
per non ringraziare uno solo mi sono autoscritto e ovviamente ringrazio
tutti voi per le risopste molte valide che mi avete dato.
ciao
