DIAS DA SEMANA NUM PERIODO

USUARIO.EXCLUIDOS 25/04/2007 17:14:24
#213749
Galera,

é o seguinte, preciso saber num determinado intervalo quantos vezes aparecem cada dia da semana.

Exemplo: de 02/04/07 a 25/04/07

SEG aparece 4 vezes
TER aparece 4 vezes
QUA aparece 4 vezes
QUI aparece 3 vezes
SEX aparece 3 vezes
SAB aparece 3 vezes
DOM aparece 3 vezes

talvez seja fácil, mas minha cabeça ta enrolada com tanta coisa que não to conseguindo pensar...


HUGOSSOUZA 25/04/2007 17:35:27
#213750
Resposta escolhida
se não achar nenhuma forma mais facil tenta assim:



Dim semana(6) As Integer
Dim inicio As Date
Dim fim As Date

inicio = "02/04/2007"
fim = "25/04/2007"

For a = CVDate(inicio) To CVDate(fim)
Select Case Weekday(a)
Case 1 'domingo
semana(0) = semana(0) + 1
Case 2 'segunda
semana(1) = semana(1) + 1
Case 3 'terça
semana(2) = semana(2) + 1
Case 4 'quarta
semana(3) = semana(3) + 1
Case 5 'quinta
semana(4) = semana(4) + 1
Case 6 'sexta
semana(5) = semana(5) + 1
Case 7 'sabado
semana(6) = semana(6) + 1
End Select
Next

MsgBox "Domingo " & semana(0) & Chr(13) & " Segunda " & semana(1) & Chr(13) & " Terça " & semana(2) & Chr(13) & " Quarta " & semana(3) & Chr(13) & " Quinta " & semana(4) & Chr(13) & " Sexta " & semana(5) & Chr(13) & " sabado " & semana(6)

USUARIO.EXCLUIDOS 25/04/2007 17:37:43
#213751
    Dim DataAcu As Date
Dim DataIni As Date
Dim DataFim As Date
Dim Seg As Integer
Dim Ter As Integer
Dim Qua As Integer
Dim Qui As Integer
Dim Sex As Integer
Dim Sab As Integer
Dim Dom As Integer

DataIni = "02/04/2007"
DataFim = "25/04/2007"

DataAcu = DataIni
While DataAcu <= DataFim
If Weekday(DataAcu) = 1 Then
Dom = Dom + 1
ElseIf Weekday(DataAcu) = 2 Then
Seg = Seg + 1
ElseIf Weekday(DataAcu) = 3 Then
Ter = Ter + 1
ElseIf Weekday(DataAcu) = 4 Then
Qua = Qua + 1
ElseIf Weekday(DataAcu) = 5 Then
Qui = Qui + 1
ElseIf Weekday(DataAcu) = 6 Then
Sex = Sex + 1
ElseIf Weekday(DataAcu) = 7 Then
Sab = Sab + 1
End If

DataAcu = DateAdd("d", 1, DataAcu)
Wend

USUARIO.EXCLUIDOS 25/04/2007 18:05:09
#213762
valeu galera, isso mesmo


Tópico encerrado , respostas não são mais permitidas