#post-id: 2797-05-49
#original-date: 23.03.2008 Sun
#original-time: 5:49 AM
#original-day:  2797
#original-host: WinXP Prof SP2 (Build 2600)

Продолжаю крутить самый дурацкий алгоритм. Чтобы было точно, я решила не делить количество дней прошедших с моего дня рождения на очень приблизительное число дней в году, а сделала немного другое. Вот какой был алгоритм:

Age = DateDiff("yyyy", DateSerial(1983, 11, 1), Now)



DateDiff(), как оказалось, возвращает Long и как-то странно округляет цифру. Поэтому сейчас, судя по алгоритму, мне 25. Поэтому я сделала иначе:

Private Function GetMyAge() As BStr
 Dim TXT As BStr
 Dim XNow As Date
 Dim Years As Long
 
 XNow = Now
 Years = Year(XNow) - 1983
 
 If DateSerial(1069, Month(XNow), Day(XNow)) < DateSerial(1969, 11, 1) Then
   Years = Years - 1
 End If
 
 GetMyAge = "Мой возраст: " & Years
End Function



Для начала я беру разницу. Наверное также поступает и DateDiff() ^^' Потом смотрю, сегодняшнее число меньше дня рождения или нет - я пролсто сравниваю два значения Date. Тут учитывается что в день дня рождения мне уже на год больше. Если нет, то я отнимаю единичку ^^ Честно говоря, несмотря на то что тут обычная математика, у меня с математикой всё очень плохо, поэтому я всё равно не до конца охватываю весь глубинный смысл онимания еденички. Писала просто по интуиции ^^

Кстати, судя по всему, тут учитывается и нулевой возраст, а если меня ещё не было - отрицательный ^^

#music: Yuki Kajiura\Madlax  ED Single\inside your heart