Você pode, mas fica complexo. Se você tiver uma data em segundos simples, por exemplo, os segundos que se passaram desde a meia-noite de quinta-feira, 1º de janeiro de 1970 ( hora POSIX ), é relativamente fácil adicionar um minuto a ele:
$ date +%s
1379385111
$ date +%s | awk '{print "Current time is",$1,"soon will be", $1+60}'
Current time is 1379385275 soon will be 1379385335
Bom e bom, mas e se você quiser fazer isso com tempos humanos legíveis? E se você quiser adicionar 4 meses e 2 semanas? Calcular isso em segundos é uma dor e interpretar tal data também não é fácil. Por exemplo, que data a 411174000
representa 1 ?
Como você incrementaria Sun 12 Dec 1936
em, digamos, 3 semanas? É um problema surpreendentemente espinhoso se você não tiver permissão para usar bibliotecas de manipulação de data. Pense em converter todas as datas em segundos e, em seguida, adicione, tenha em mente que alguns meses têm 30 dias, outros 31, muito menos fevereiro e os anos bissextos. Realmente não é um problema trivial. É por isso que a maioria das linguagens de programação tem bibliotecas de manipulação de datas ( Perl , por exemplo, ou C ).
Além disso, date
pode lidar com datas como tomorrow
ou
Oct 18 2017
e pode adicionar e subtrair as datas e retornar uma data legível em vez de uma cadeia de dígitos.
Como o programa padrão date
torna isso muito mais fácil, por que devemos reinventar a roda?
1 Quarta-feira Jan 12 00:00:00 CET 1983