Мне нужно отобразить время в течение дня и напечатать «Утро, день или вечер».
i.Утро (4:00 - 11:59) ii.Полдень (12:00 - 17:59) iii.Вечер (6:00 PM - 3:59 AM)
Я использовал GetTimeFormat с форматированием времени в 24 часа.ecx фактически содержит 1-24 в зависимости от системного времени.
invoke GetTimeFormat, 0, 0, 0, ADDR timeformat, ADDR time_buf, 50
mov ecx, offset time_buf
push ecx
push ecx
push ecx
add ecx, eax; add length returned by GetTimeFormat
pop ecx
cmp ecx, 4
je AM
jg AMNN
jl PM
AMNN:
pop ecx
cmp ecx, 12
jl AM
jge NNPM
NNPM:
pop ecx
cmp ecx, 18
jl NN
jge PM
Этот код всегда выводит сообщение PM.: (
Любая помощь? Спасибо!