자정 이후 초를 어떻게 찾습니까?


11

date프로그램을 사용하여 자정 이후의 시간 (초)을 어떻게 계산할 수 있습니까?


1
날짜 "+ (% H * 60 + % M) * 60 + % S"| bc
groxxda

1
echo $ (($ (date '+ (% H * 60 + % M) * 60 + % S')))
groxxda

답변:


14

여전히 GNU 날짜를 가정하여 경쟁 조건을 피하려면 다음을 수행하십시오.

eval "$(date +'today=%F now=%s')"
midnight=$(date -d "$today 0" +%s)
echo "$((now - midnight))"

을 사용하면 zsh내부적으로 할 수 있습니다.

zmodload zsh/datetime
now=$EPOCHSECONDS
strftime -s today %F $now
strftime -rs midnight %F $today
echo $((now - midnight))

일광 절약 스위치가없는 시간대에서는 다음을 수행 할 수 있습니다.

IFS=:
set -- $(date +%T)
echo "$((${1#0} * 3600 + ${2#0} * 60 + ${3#0}))"

${X#0}선도 일부 껍질처럼 0 제거하는 것입니다 bash, dash그리고 posh함께 문제를 일으킬 09(쉘이 잘못된 8 진수 것에 대해 불평 경우).


매우 영리하고 좋은
평가판

IFS=: read -r today now <<< $(date +%F:%s); midnight=$(date -d "$today 0" +%s); echo $(( now - midnight ))
차라리이


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.