Имя пользователя:
Пароль:
 

Название темы: [решено] сравнение дат
Показать сообщение отдельно

Забанен


Сообщения: 346
Благодарности: 62

Профиль | Цитировать


ЕЯПП то так делать ненадо. Берут дату unix_time и уже с ней играются.
т.е. брать дату в unix_time, сравнивать и перед выводом, перестраивать в "человеческий формат".

Сравнишь секунды, дальше преобразуешь в читаемый формат. получить unix_time в Windows можно просто так:
(отсюда пример https://stackoverflow.com/questions/...p-to-unix-time )
scrpit
Код: Выделить весь код
@echo off
setlocal
call :GetUnixTime UNIX_TIME
echo %UNIX_TIME% seconds have elapsed since 1970-01-01 00:00:00
goto :EOF

:GetUnixTime
setlocal enableextensions
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do (
    set %%x)
set /a z=(14-100%Month%%%100)/12, y=10000%Year%%%10000-z
set /a ut=y*365+y/4-y/100+y/400+(153*(100%Month%%%100+12*z-3)+2)/5+Day-719469
set /a ut=ut*86400+100%Hour%%%100*3600+100%Minute%%%100*60+100%Second%%%100
endlocal & set "%1=%ut%" & goto :EOF

... а вот вернуть в читаемый вид яхз. Но у тебя уже есть сторонняя утила, знач никаких сложностей заиметь еще парочку : just install Cygwin (which comes with a UNIX-like time command)

Там есть своя date полнофункциональная, куда можно заслать значение секунд unix_date и получить читаемый вывод:
- выше скрипт выдаст
Код: Выделить весь код
1653921171 seconds have elapsed since 1970-01-01 00:00:00
и через for берем первые до пробела цифры, сравниваем и дальше засылаем в date
Код: Выделить весь код
date -d@1396713472
получаем:
Код: Выделить весь код
Mon May 30 17:32:51     2022
или...
Код: Выделить весь код
date -d@1396713472 --iso
получаем
Код: Выделить весь код
2022-05-30
Осталось собрать воедино

Последний раз редактировалось wasp14, 30-05-2022 в 17:46.


Отправлено: 17:38, 30-05-2022 | #2

Название темы: [решено] сравнение дат