【VB6・VBAメモ】WindowsAPI:GetLocalTime関数

このAPIは現在時刻を取得する際に使用します。
同じようなAPIにGetSystemTimeがありますが、
GetLocalTimeはタイムゾーンを考慮して時間を取得するようです。

VB6・VBAではNow、.NET FrameworkではDateTime.Nowを使えばほぼ事足りますが、
一応サンプルは書いておきます。

概要
void GetLocalTime(LPSYSTEMTIME lpSystemTime)
機能 現在のローカル日時を取得
引数 lpSystemTime 日時を格納する値 LPSYSTEMTIME
(*LPSYSTEMTIME = SYSTEMTIME)
戻り値 なし
SYSTEMTIME構造体
メンバー 説明
wYearWORD
(unsigned short)
wMonthWORD
(unsigned short)
月(1月=1)
wDayOfWeekWORD
(unsigned short)
曜日(日曜=0, 月曜=1)
wDayWORD
(unsigned short)
wHourWORD
(unsigned short)
wMinuteWORD
(unsigned short)
wSecondWORD
(unsigned short)
wMillisecondsWORD
(unsigned short)
ミリ秒
使用例:現在時刻を取得
Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

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

Sub Sumple()
    Dim weekStr
    weekStr = Array("日", "月", "火", "水", "木", "金", "土")

    '現在日時を取得'
    Dim t As SYSTEMTIME
    Call GetLocalTime(t)
    
    '現在日付を出力'
    Debug.Print Format(t.wYear, String(4, "0")) & "年" _
              & Format(t.wMonth, String(2, "0")) & "月" _
              & Format(t.wDay, String(2, "0")) & "日" _
              & "(" & weekStr(t.wDayOfWeek) & ")"
    
    '現在時刻を出力'
    Debug.Print Format(t.wHour, String(2, "0")) & "時" _
              & Format(t.wMinute, String(2, "0")) & "分" _
              & Format(t.wSecond, String(2, "0")) & "." _
              & CStr(t.wMilliseconds) & "秒"
End Sub
2012年07月02日(月)
13時06分46.986秒


コメント
コメントする








    
この記事のトラックバックURL
トラックバック