Удобный способ форматирования даты

Здесь можно найти готовые «кирпичики» — части кода, пригодные для построения более крупных проектов, а также решения различных типовых и не очень задач на VB.

Модератор: Brickgroup

MadChild
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 04.03.2002 (Пн) 14:52
Откуда: Russia

Удобный способ форматирования даты

Сообщение MadChild » 18.09.2009 (Пт) 4:04

По работе часто приходится выводить дату в разных форматах, написал вот такую функцию.
Критикуйте :?
Код: Выделить всё
Public Enum VFormat
    ddmmyy = 1          '18.09.09
    ddmmyyyy = 2        '18.09.2009
    yyyymmdd = 3        '2009.09.18
    dd_mmmm_yyyy = 4    '18 Сентябрь 2009
    mmmm = 5            'Сентябрь
    mmmmRP = 6          'Сентября
    mmmm_yyyy = 7       'Сентябрь 2009
    mmmmRP_yyyy = 8     'Сентября 2009
    mmSmall = 9         'Сен
    dd_mmmmRP_yyyy = 10 '18 Сентября 2009
End Enum
Public Function meDateFormat(ValDate, ValFormat As VFormat)
Dim ArrMonth As Variant, ArrMonthRP As Variant, ArrMonthSmall
Dim isMonth, isDay, isYear
ArrMonth = Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")
ArrMonthRP = Array("Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря")
ArrMonthSmall = Array("Янв", "Фев", "Мар", "Апр", "Мая", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек")
If IsDate(ValDate) = False Then DateFormat = False: Exit Function

isDay = Format(ValDate, "dd")
isMonth = Format(ValDate, "mm") - 1
isYear = Format(ValDate, "yyyy")

Select Case ValFormat
    Case 1
        meDateFormat = Format(ValDate, "dd.mm.yy")
    Case 2
        meDateFormat = Format(ValDate, "dd.mm.yyyy")
    Case 3
        meDateFormat = Format(ValDate, "yyyy.mm.dd")
    Case 4
        meDateFormat = isDay & " " & ArrMonth(isMonth) & " " & isYear
    Case 5
        meDateFormat = ArrMonth(isMonth)
    Case 7
        meDateFormat = ArrMonth(isMonth) & " " & isYear
    Case 6
        meDateFormat = ArrMonthRP(isMonth)
    Case 8
        meDateFormat = ArrMonthRP(isMonth) & " " & isYear
    Case 9
        meDateFormat = ArrMonthSmall(isMonth)
    Case 10
        meDateFormat = isDay & " " & ArrMonthRP(isMonth) & " " & isYear
End Select

End Function
Вложения
basMeDateFotmat.rar
собственно сам BAS
(703 байт) Скачиваний: 284
Последний раз редактировалось MadChild 18.09.2009 (Пт) 14:02, всего редактировалось 2 раз(а).

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Удобный способ форматирования даты

Сообщение Viper » 18.09.2009 (Пт) 8:00

Функция Format делает все это легко и непринужденно.
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Удобный способ форматирования даты

Сообщение Хакер » 18.09.2009 (Пт) 8:45

Автор, приведи топик и код в порядок, иначе тема будет выброшена из этого раздела.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Кирпичный завод

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList