» GetTime: определяем время

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 01.09.2011

Для выполнения команды необходимо:
!include "FileFunc.nsh"
${GetTime}

Команда "GetTime" позволяет:

${GetTime} "[Файл]" "[Параметры]" $var1 $var2 $var3 $var4 $var5 $var6 $var7

"[Файл]"        ; Игнорируется если "L" или "LS"
                ;
"[Параметры]"   ; [Параметры]
                ;   L   Локальное время
                ;   A   Последний доступ к файлу
                ;   C   Время создания файла
                ;   M   Время изменения файла
                ;   LS  Системное время (UTC)
                ;   AS  Последний доступ к файлу (UTC)
                ;   CS  Время создания файла (UTC)
                ;   MS  Время изменения файла (UTC)
                ;
$var1           ; Результат: День
$var2           ; Результат: Месяц
$var3           ; Результат: Год
$var4           ; Результат: Название Дня недели
$var5           ; Результат: Час
$var6           ; Результат: Минуты
$var7           ; Результат: Секунды

1. Определяем время
Section
    ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6
    ; $0="01"      День
    ; $1="04"      Месяц
    ; $2="2005"    Год
    ; $3="Friday"  Название дня недели
    ; $4="16"      Час
    ; $5="05"      Минуты
    ; $6="50"      Секунды

    MessageBox MB_OK 'Дата=$0/$1/$2 ($3)$\nВремя=$4:$5:$6'
SectionEnd

2. Определяем время файла
Section
    ${GetTime} "$WINDIR\Explorer.exe" "C" $0 $1 $2 $3 $4 $5 $6
    ; $0="12"       День
    ; $1="10"       Месяц
    ; $2="2004"     Год
    ; $3="Tuesday"  Название дня недели
    ; $4="2"        Час
    ; $5="32"       Минуты
    ; $6="03"       Секунды

    IfErrors 0 +2
    MessageBox MB_OK "Ошибка" IDOK +2
    MessageBox MB_OK 'Дата=$0/$1/$2 ($3)$\nВремя=$4:$5:$6'
SectionEnd

3. Конвертируем время в 12-часовой формат
Section
    ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6

    StrCmp $4 0 0 +3
    StrCpy $4 12
    goto +3
    StrCmp $4 12 +5
    IntCmp $4 12 0 0 +3
    StrCpy $7 AM
    goto +3
    IntOp $4 $4 - 12
    StrCpy $7 PM

    MessageBox MB_OK 'Дата=$0/$1/$2 ($3)$\nВремя=$4:$5:$6 $7'
SectionEnd