Dim days As Integer, newdays As Integer
Dim i As Integer
If Month(Now) >= Val(cmbMonths.Text) And Day(Now) >= Val(txtDays.Text) Then
'если в текущем году у пользователя уже был день рождения
days = (Year(Now) - Val(txtYears.Text)) * 365
ElseIf Month(Now) = Val(cmbMonths.Text) And Day(Now) < Val(txtDays.Text) Then
'если день рождения у пользователя в текущем месяце, но еще не наступил
days = (Year(Now) - Val(txtYears.Text) + 1) * 365
'возможно, все нижеследуещее до Else лишнее, т. к. повторяет конец
If Val(txtYears.Text) Mod 4 = 0 Then
If Val(cmbMonths.Text) <= 2 Then days = days + 1
End If
For i = 0 To Year(Now) - Val(txtYears.Text) - 1
If (Val(txtYears.Text) + i + 1) Mod 4 = 0 Then days = days + 1
Next i
For i = 0 To Month(Now) - Val(cmbMonths.Text) - 1
Select Case (Val(cmbMonths.Text) + i + 1)
Case 1, 3, 5, 7, 8, 10, 12
days = days + 31
Case 2
If Year(Now) Mod 4 = 0 Then
days = days + 29
Else
days = days + 28
End If
Case 4, 6, 9, 11
days = days + 30
End Select
Next i
days = days + (Day(Now) - Val(txtDays.Text))
Else
days = (Year(Now) - Val(txtYears.Text) + 1) * 365
End If
'newdays = days
If Val(txtYears.Text) Mod 4 = 0 Then
If Val(cmbMonths.Text) <= 2 Then days = days + 1
End If
For i = 0 To Year(Now) - Val(txtYears.Text) - 1
If (Val(txtYears.Text) + i + 1) Mod 4 = 0 Then days = days + 1
Next i
i = 0
For i = 0 To Month(Now) - Val(cmbMonths.Text) - 1
Select Case (Val(cmbMonths.Text) + i + 1)
Case 1, 3, 5, 7, 8, 10, 12
days = days + 31
Case 2
If Year(Now) Mod 4 = 0 Then
days = days + 29
Else
days = days + 28
End If
Case 4, 6, 9, 11
days = days + 30
End Select
Next i
days = days + (Day(Now) - Val(txtDays.Text))
lblDays.Caption = days
Подсчет количества прожитых дней
Нужно создать программу, которая на основании указанного дня рождения (день, месяц, год) подсчитывает, сколько дней прошло с момента рождения пользователя.
Уже написал такой код (txtDays -- день, cmbMonths -- месяц и txtYears -- год рождения, lblDays -- сюда выводится результат):
Код:
Спасибо.
Спасибо. Я уже нашел ответ -- из текущей даты вычитается дата дня рождения, формируемая функцией DateSerial :)))))))