Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Системная установка даты / 6 сообщений из 6, страница 1 из 1
01.07.2004, 15:26
    #32585532
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Системная установка даты
Как я могу получить системную установку даты? Я хочу получить, например,
yyyy/mm/dd , если это американский формат даты и dd.mm.yyyy в русском формате?
...
Рейтинг: 0 / 0
01.07.2004, 15:55
    #32585631
Диметр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Системная установка даты
Ну а если

dd=Date

y=Year(Date)
m=Month(Date)
d=Day(Date)

А там уже что хочешь, то с ними и делай :-)

P.S.: надеюсь, я правильно понял вопрос...
...
Рейтинг: 0 / 0
01.07.2004, 16:15
    #32585701
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Системная установка даты
ДиметрНу а если

dd=Date

y=Year(Date)
m=Month(Date)
d=Day(Date)

А там уже что хочешь, то с ними и делай :-)

P.S.: надеюсь, я правильно понял вопрос...

Не так просто, не так просто!

Моя программа может попасть в любые условия, в любое языковое и в том числе "временное" пространство. И я заранее не могу знать каков формат даты установлен на компе. Поэтому, если я проставляю формат dd/mm/yyyy на каком нибудь поле, то 10/02/2004 американцем может быть воспринято как
2 октября, а не 10 февраля!
...
Рейтинг: 0 / 0
01.07.2004, 17:10
    #32585839
boevik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Системная установка даты
Мочет не совсем то, но посмотри.
Перевод даты в системный вид:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Option Explicit
Private Type SYSTEMTIME
        wYear As Integer
        wMonth As Integer
        wDayOfWeek As Integer
        wDay As Integer
        wHour As Integer
        wMinute As Integer
        wSecond As Integer
        wMilliseconds As Integer
End Type


Private Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" _
        (ByVal Locale As Long, _
        ByVal dwFlags As Long, _
        lpDate As SYSTEMTIME, _
        ByVal lpFormat As String, _
        ByVal lpDateStr As String, _
        ByVal cchDate As Long) As Long

Private Sub Command1_Click()
    Const LOCALE_USER_DEFAULT = &H400
    Const DATE_SHORTDATE = &H1
    Dim lpDate As SYSTEMTIME
    Dim lpFormat As String
    Dim lpSeparator As String
    Dim cchDate As Long
    Dim lpDateStr As String
    Dim rc As Long

    lpDate.wMonth =  7 
    lpDate.wDay =  1 
    lpDate.wYear =  2004 
    lpFormat = vbNullString
    lpDateStr = String( 254 , Chr( 0 ))
    cchDate =  0 

    rc = GetDateFormat(LOCALE_USER_DEFAULT,  0 , lpDate, lpFormat, lpDateStr, cchDate)
    lpDateStr = String(rc, Chr( 0 ))
    rc = GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, lpDate, lpFormat, lpDateStr, rc)

    Debug.Print Left(lpDateStr, rc -  1 )
End Sub

--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
01.07.2004, 17:22
    #32585863
boevik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Системная установка даты
A вот, кажется и то, что ты искал.
Как узнать формат даты:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Option Explicit
Private Const LOCALE_USER_DEFAULT = &H400
Private Const LOCALE_SSHORTDATE = &H1F         '  short date format string
 
Private Const LOCALE_SDATE = &H1D         '  date separator
 

Private Declare Function GetLocaleInfo& Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long)


Private Function GetLocaleDateFormat()
    Dim lpFormat As String
    Dim cchDate As Long
    Dim rc As Long

    cchDate =  0 
    lpFormat = String( 254 , Chr( 0 ))
    
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, lpFormat, cchDate)
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, lpFormat, rc)
    lpFormat = Left(lpFormat, rc -  1 )
    GetLocaleDateFormat = lpFormat
End Function

Private Function GetLocaleDateSeparator()
    Dim lpFormat As String
    Dim cchDate As Long
    Dim rc As Long

    cchDate =  0 
    lpFormat = String( 254 , Chr( 0 ))
    
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SDATE, lpFormat, cchDate)
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SDATE, lpFormat, rc)
    lpFormat = Left(lpFormat, rc -  1 )
    GetLocaleDateSeparator = lpFormat
End Function


Private Sub Command1_Click()
    Dim lpFormat As String
    Dim lpSeparator As String
    Dim sDate As String

    lpFormat = GetLocaleDateFormat
    lpSeparator = GetLocaleDateSeparator

    Debug.Print lpFormat, lpSeparator
End Sub
--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
01.07.2004, 18:38
    #32586025
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Системная установка даты
boevik

Да, второй пост - то что нужно! Спасибо огромное!

Удачи!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Системная установка даты / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]