世界協定時刻(UTC)形式をローカル時間表示に直します 
	
	 		
	
	 
	 
 
Attribute VB_Name = "Module1" 
Option Explicit 
 
'typedef struct _FILETIME { 
'    DWORD dwLowDateTime;   /* 下位 32 ビット */ 
'    DWORD dwHighDateTime;  /* 上位 32 ビット */ 
'} FILETIME, 
 
 
 
Type FILETIME 
dwLowDateTime As Long '下位32ビット値 
dwHighDateTime As Long '上位32ビット値 
End Type 
 
'typedef struct _SYSTEMTIME { 
'    WORD wYear; 
'    WORD wMonth; 
'    WORD wDayOfWeek; 
'    WORD wDay; 
'    WORD wHour; 
'    WORD wMinute; 
'    WORD wSecond; 
'    WORD wMilliseconds; 
'} SYSTEMTIME, *PSYSTEMTIME; 
 
 
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 
 
 
 
 
Public Declare Sub GetSystemTimeAsFileTime Lib "kernel32" (SystemTime As FILETIME) 
 
'FileTimeToSystemTime 
 
Public Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SystemTime) As Long 
 
 
Public Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SystemTime) 
 
 
Public Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long 
 
Public Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SystemTime, lpFileTime As FILETIME) As Long 
 
  |  
  
 
VERSION 5.00 
Begin VB.Form Form1  
   Caption         =   "Form1" 
   ClientHeight    =   2400 
   ClientLeft      =   60 
   ClientTop       =   450 
   ClientWidth     =   2670 
   LinkTopic       =   "Form1" 
   ScaleHeight     =   2400 
   ScaleWidth      =   2670 
   StartUpPosition =   3  'Windows の既定値 
   Begin VB.CommandButton Command2  
      Caption         =   "Command2" 
      Height          =   675 
      Left            =   300 
      TabIndex        =   1 
      Top             =   1440 
      Width           =   2055 
   End 
   Begin VB.CommandButton Command1  
      Caption         =   "Command1" 
      Height          =   675 
      Left            =   360 
      TabIndex        =   0 
      Top             =   360 
      Width           =   1995 
   End 
End 
Attribute VB_Name = "Form1" 
Attribute VB_GlobalNameSpace = False 
Attribute VB_Creatable = False 
Attribute VB_PredeclaredId = True 
Attribute VB_Exposed = False 
Option Explicit 
 
 
Private Sub Command1_Click() 
 
'取得した世界協定時刻(UTC)形式をローカル時間表示に直します 
 
Dim ret 
Dim fitime As FILETIME '取得した世界協定時刻(UTC)形式 
Dim fiLocTime As FILETIME 'ローカルタイムに直したもの 
Dim sitime As SystemTime 
Dim strWeek As String 
 
GetSystemTimeAsFileTime fitime  '取得世界協定時刻(UTC)形式 
 
 
Debug.Print fitime.dwHighDateTime 
Debug.Print fitime.dwLowDateTime 
 
'世界協定時刻(UTC)に基づくファイル時刻を、ローカルのファイル時刻へ変換します。 
ret = FileTimeToLocalFileTime(fitime, fiLocTime) 
'64 ビット形式のファイル時刻を、システム日時形式へ変換します。 
ret = FileTimeToSystemTime(fiLocTime, sitime) 
 
Debug.Print sitime.wYear; "年" 
Debug.Print sitime.wMonth; "月" 
Debug.Print sitime.wDay; "日" 
Debug.Print sitime.wHour; "時" 
Debug.Print sitime.wMinute; "分" 
Debug.Print sitime.wSecond; "秒" 
Debug.Print sitime.wMilliseconds; "ミリ秒" 
 
Select Case sitime.wDayOfWeek 
   Case 0 
      strWeek = "Sunday" 
   Case 1 
      strWeek = "Monday" 
   Case 2 
      strWeek = "Tuesday" 
   Case 3 
      strWeek = "Wednesday" 
   Case 4 
      strWeek = "Thursday" 
   Case 5 
      strWeek = "Friday" 
   Case 6 
      strWeek = "Saturday" 
End Select 
Debug.Print strWeek 
 
 
''The day of the week. 
'' 
''Sunday = 0 
''Monday = 1 
''Tuesday = 2 
''Wednesday = 3 
''Thursday = 4 
''Friday = 5 
''Saturday = 6 
 
 
 
 
 
 
 
 
End Sub 
 
 
Private Sub Command2_Click() 
'世界協定時刻(UTC)に基づくファイル時刻をローカル時刻に変換します 
 
Dim ret 
Dim fitime As FILETIME 
Dim fiLocTime As FILETIME 'ローカルタイムに直したもの 
Dim sitime As SystemTime 
Dim inY As Integer 
Dim inM As Integer 
Dim inD As Integer 
Dim inH As Integer 
Dim inMi As Integer 
Dim inS As Integer 
Dim inMil As Integer 
Dim strWeek As String 
 inY = 2005 
 inM = 4 
 inD = 15 
 inH = 15 
 inMi = 26 
 inS = 19 
 inMil = 203 
 
 
 
sitime.wYear = inY 
sitime.wMonth = inM 
sitime.wDay = inD 
sitime.wHour = inH 
sitime.wMinute = inMi 
sitime.wSecond = inS 
sitime.wMilliseconds = inMil 
sitime.wDayOfWeek = 2 '無視されるので適当 
 
'ファイルタイムに変換 
ret = SystemTimeToFileTime(sitime, fitime) 
'ローカルタイムに変換 
ret = FileTimeToLocalFileTime(fitime, fiLocTime) 
'再びシステムタイムに変換代入 
ret = FileTimeToSystemTime(fiLocTime, sitime) 
Debug.Print sitime.wYear; "年" 
Debug.Print sitime.wMonth; "月" 
Debug.Print sitime.wDay; "日" 
Debug.Print sitime.wHour; "時" 
Debug.Print sitime.wMinute; "分" 
Debug.Print sitime.wSecond; "秒" 
Debug.Print sitime.wMilliseconds; "ミリ秒" 
 
Select Case sitime.wDayOfWeek 
   Case 0 
      strWeek = "Sunday" 
   Case 1 
      strWeek = "Monday" 
   Case 2 
      strWeek = "Tuesday" 
   Case 3 
      strWeek = "Wednesday" 
   Case 4 
      strWeek = "Thursday" 
   Case 5 
      strWeek = "Friday" 
   Case 6 
      strWeek = "Saturday" 
End Select 
Debug.Print strWeek 
End Sub 
 
 
  |   
 
	©  2004 I Love Balard. All Rights Reserved. 
	 	
	
	
		
		
	 
	
	
	
	 |