![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Работа с датами |
|
VBA - Работа с датами
|
Новый участник Сообщения: 4 |
Работа с датами в VBA
Определить кто из родителей старше. Вывести разницу согласно году,месяцу,дню.Например,папа-18.03.1970,мама-21,02,1971. Результат: папа старше на 1 год, у мамы на 1 месяц раньше день рождения, по дню у папы день рождения раньше. |
|
Отправлено: 22:20, 27-01-2011 |
Пользователь Сообщения: 120
|
Кто старше (пример):
Const Father = "18.03.1970" Const Mother = "21.02.1971" Private Function fnWhoOlder(Father as String, Mother as String) as Byte If CDate(Father) = CDate(Mother) Then fnWhoOlder = 0 ElseIf CDate(Father) > CDate(Mother) Then fnWhoOlder = -1 Else fnWhoOlder = 1 End If End Function Select Case fnWhoOlder(Father, Mother) Case -1 Debug.Print "Папа старше мамы" Case 0 Debug.Print "Папа и мама - родились в один день" Case 1 Debug.Print "Папа младше мамы" End Select |
Отправлено: 16:08, 31-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 120
|
Нужная функция, для правильного представления числа в текстовом виде
Public Function fnNum2Word(ByVal inp As Long, ByVal fir As String, ByVal sec As String, ByVal many As String) As String Dim tmp As String tmp = Format$(inp, "000") If Len(tmp) > 2 Then tmp = Mid(tmp, Len(tmp) - 1, 2) Select Case Val(Mid(tmp, 1, 1) & "") Case 1 Select Case Val(Mid(tmp, 2, 1) & "") Case 0 - 9 fnNum2Word = many End Select Case 0, 2 To 9 Select Case Val(Mid(tmp, 2, 1) & "") Case 1 fnNum2Word = fir Case 2 To 4 fnNum2Word = sec Case 0, 5 To 9 fnNum2Word = many End Select End Select End Function Как вызвать окно Immediate Sub CalculateBirthdayDiffs(ByVal fDate As String, ByVal mDate As String) Dim yearDiff As Long Dim monthDiff As Long Dim dayDiff As Long If IsDate(fDate) And IsDate(fDate) Then If CDate(fDate) = CDate(mDate) Then Debug.Print "Папа и мама - родились в один день" ElseIf CDate(fDate) < CDate(mDate) Then yearDiff = DateDiff("yyyy", fDate, mDate) Debug.Print "Папа старше мамы на " & yearDiff & " " & fnNum2Word(yearDiff, "год", "года", "лет") Else yearDiff = DateDiff("yyyy", fDate, mDate) Debug.Print "Папа младше мамы на " & yearDiff & " " & fnNum2Word(yearDiff, "год", "года", "лет") End If If Month(fDate) > Month(mDate) Then monthDiff = Month(fDate) - Month(mDate) Debug.Print "у мамы на " & monthDiff & " " & fnNum2Word(monthDiff, "месяц", "месяца", "месяцев") & " раньше день рождения" ElseIf Month(fDate) < Month(mDate) Then monthDiff = Month(mDate) - Month(fDate) Debug.Print "у папы на " & monthDiff & " " & fnNum2Word(monthDiff, "месяц", "месяца", "месяцев") & " раньше день рождения" End If If Day(fDate) > Day(mDate) Then dayDiff = Day(fDate) - Day(mDate) Debug.Print "по дню у мамы день рождения раньше на " & dayDiff & " " & fnNum2Word(dayDiff, "день", "дня", "дней") ElseIf Day(fDate) < Day(mDate) Then dayDiff = Day(mDate) - Day(fDate) Debug.Print "по дню у папы день рождения раньше на " & dayDiff & " " & fnNum2Word(dayDiff, "день", "дня", "дней") End If End If End Sub |
Отправлено: 08:41, 01-02-2011 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] "Мигалка". работа с датами в JS, PHP | Artem-Samsung | Вебмастеру | 1 | 31-01-2009 01:10 | |
Прочие БД - Расчет полей с датами и передачи строк в отчет. | crem78 | Программирование и базы данных | 0 | 09-08-2008 07:34 | |
Работа БП | Surround | Хочу все знать | 5 | 05-03-2006 21:40 | |
проблема с датами в JS | dascon | Вебмастеру | 10 | 07-07-2005 01:23 | |
Работа ХР с CD | LamerOK | Microsoft Windows 2000/XP | 8 | 17-04-2004 23:51 |
|