DUVIDA - CALENDARIO CADASTRAR / CONSULTAR

YENDIS 25/09/2012 22:04:07
#410496
Boa noite pessoas!

Bom, uma apresentação básica.
Meu nome é Yendis, e estou cursando S.I. Curtindo muito VB, mas começou ficar difícil.. ahauhahuaha.
Tenho conhecimento básico na área de programação, mas espero poder aprender e ensinar no que puder.
é o seguinte, o professor havia pedido para utilizarmos o calendário do VB, e usar uma matriz para cadastro/consulta de cada dia/mês.
Se o usuário fosse clicar na seta para colocar um dia/mês que fosse maior que o atual, iria aparecer um erro dizendo que não pode cadastrar/consultar o dia/mês posterior..
Sendo assim, quando o usuário clicar no dia para adicionar [Ô]Código/Descrição/Quantidade/Valor, iria ser cadastrado na matriz na posição do dia que foi selecionado..
Mas, tem que ser feito um calculo meio chato (me confundo bastante), o calculo tem que ser feito porque tem mês que é 31 dias, outro 30, e assim vai..
Se não me engano a matriz tem que ter 300 e poucas linhas conforme a quantidade de dias no ano..
Infelizmente não tenho como passar o código, pois a dúvida é em como começar..
Já estou enrolado para fazer, talvez fui enrolado para explicar também.. ahuahuahuah

Desde já, agradeço à todos!

Obrigado!
YENDIS 02/10/2012 00:13:44
#410994
Alguém sabe? :/
DJOU 02/10/2012 11:19:47
#411025
uma matrix para cada dia do ano?
FILMAN 02/10/2012 12:44:49
#411031
Para retornar o ultimo dia do mês você pode fazer de várias maneira eu atualmente utilizo dessas duas abaixo:

Public Function UltimoDiaMes(ByVal dtData As Date) As Date
Dim sData As String
Dim iUltDia As Integer
Dim iMes As Integer
Dim iAno As Integer

[ô]dtData = CDate([Ô]2007/11/12[Ô])

iMes = Month(dtData)
iAno = Year(dtData)

Select Case iMes
Case 1, 3, 5, 7, 8, 10, 12
iUltDia = 31
Case 4, 6, 9, 11
iUltDia = 30
Case Else [ô]Mes 2
If iAno Mod 4 = 0 Then
iUltDia = 29
Else
iUltDia = 28
End If
End Select
sData = CStr(iUltDia) & [Ô]/[Ô] & CStr(iMes) & [Ô]/[Ô] & CStr(iAno)
UltimoDiaMes = Format(CDate(sData), [Ô]DD/MM/yyyy[Ô])
End Function

[ô]Eu sugiro essa aqui dá o mesmo resultado e economiza código
Public Function UltimoDiaMes(datax As Date) As Date
UltimoDia = DateAdd([Ô]m[Ô], 1, DateSerial(Year(datax), Month(datax), 1))
UltimoDia = DateAdd([Ô]d[Ô], -1, UltimoDia)
End Function


Sua Matriz fiacaria assim
Dim matrizMesesDia(1 To 12, 1 To 31) as Variant


Ai você vai comparar se o dia informado é maior que o atual
If (CDate(DataClicada) > Date) Or (Int(Day(CDate(DataDigitada))) > Int(Day(UltimoDiaMes(CDate(DataDigitada)))))Then
MsgBox [Ô]Não é possivel cadastrar com essa data[Ô]
Else
Dim mes, dia As Integer
mes = Int(Month(CDate(DataClicada)))
dia = Int(Day(CDate(DataClicada)))
matrizMesesDia(mes,dia) = [Ô]TEXTO DE CADASTRO[Ô]
End If



Isso é uma idéia
Tópico encerrado , respostas não são mais permitidas