date: Chegando na próxima hora

1

Pretendo obter uma cadeia de data e hora no futuro, por exemplo, pretendo sempre obter a próxima vez das 9h00.

Conheço os formatos de string como "amanhã" ou "dia seguinte" para obter uma determinada string de data e hora. Mas se eu ligar para $(date -d 'tomorrow 09:00') no início da manhã do dia 26 de novembro de 2015, receberei Nov 27 09:00:00 2015 . Mas eu esperaria obter Nov 26 09:00:00 2015 , porque é a próxima 9ª hora.

Como obtenho a próxima ocorrência da 9ª hora de um dia? Há outras palavras-chave como "próxima ocorrência de 09:00"?

    
por shylynx 26.11.2015 / 22:19

1 resposta

2

next0900=$([ $(date +%H) -lt 9 ] && date -d "09:00" || date -d "tomorrow 09:00")

Se a hora atual for menor que 9, então me dê "9:00" caso contrário me passe "amanhã 9:00"

    
por 26.11.2015 / 22:43