Страница: 1 |
|
Вопрос: Эксперимент с переменными.
|
Добавлено: 18.05.07 20:15
|
|
Автор вопроса: Annie
|
Здесь 2 совершенно одинаковых кода
(в смысле по функции ). Разница лишь в том, что
В первом в качестве переменных используются именованные контролы, во втором коде добавлены дополнительные переменные, которые присваиваются контролам соответственно. Но работают они по разному.
В первом неправильно считает возраст,
например если ставить даты с 2.05.1942 по 9.05.1942 – возвращает 64 года,
а должно быть 65 лет
или наоборот
если даты с 2.05.1942 по 9.05.1942 – возвращает 65 лет,и 2.06.1942 – тоже 65 , хотя еще не исполнилось.
во втором случае таких проблем не возникает. Пока что..
так в чем ошибка?
1)
Private Sub cmd_begin_Click()
If Month(Date) > txt_Month.Text Or (Month(Date) >= txt_Month.Text And Day(Date) >= txt_Day.Text) Then
aVoz = Str(Year(Date) - txt_Year.Text)
txt_Voz.Text = aVoz
Else
aVoz = Str(Year(Date) - txt_Year.Text - 1)
txt_Voz.Text = aVoz
End If
End Sub
2)
Private Sub cmd_begin_Click()
Dim b, c, a, e, f, r As Integer
a = Int(txt_Year.Text) 'год рождения
e = Int(txt_Month.Text) 'месяц рождения
r = Int(txt_Day.Text) 'день рождения
b = Year(Date) 'текущий год
c = Month(Date) 'текущий месяц
f = Day(Date) 'текущий день
If c > e Or (c >= e And f >= r) Then
aVoz = Str(b - a)
txt_Voz = aVoz
Else
aVoz = Str(b - a - 1)
txt_Voz = aVoz
End If
End Sub
Ответить
|
Номер ответа: 2 Автор ответа: bi-lya
Вопросов: 1 Ответов: 125
|
Профиль | | #2
|
Добавлено: 19.05.07 04:50
|
Dim b, c, a, e, f, r As Integer
EUGY говорит о том, что здесь b, c, a, e, f - тип Variant и только r - Integer
Ответить
|
Страница: 1 |
Поиск по форуму