Este é o comando dateutils.ddiff que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
ddiff - Computa a duração de DATA / HORA (a data / hora de referência) para a outra
SINOPSE
diferença [OPÇÃO]... DATA HORA [DATA HORA] ...
DESCRIÇÃO
Calcule a duração de DATA / HORA (a data / hora de referência) até as outras DATA / HORAS fornecidas
e imprima o resultado como duração. Se as outras DATA / HORA forem omitidas, leia-as de
padrão
DATE / TIME também pode ser um dos seguintes especiais
- 'agora' interpretado como o carimbo de hora atual (UTC)
- 'time' a parte do tempo do carimbo de hora atual (UTC)
- 'hoje' a data atual (de acordo com UTC)
- `tomo [rrow] 'data de amanhã (de acordo com UTC)
- `y [ester] day 'data de ontem (de acordo com UTC)
Nota: O formato de saída das durações (especificado por meio de -f) leva todos os especificadores de formato para
conta, ou seja, especificando% M e% S, por exemplo, imprime a duração em minutos e segundos,
enquanto que a especificação de% S imprime apenas a duração em segundos.
Veja a seção `A regra de refinamento 'em diferença(1).
Reconhecido OPÇÃOs:
-h, --Socorro
Imprimir ajuda e sair
-V, --versão
Versão para impressão e saída
-q, --quieto
Suprima a mensagem sobre erros e correções do analisador de data / hora e duração. o
o padrão é imprimir um aviso ou o valor fixo e retornar o código de erro 2.
-f, --formato=STRING
Formato de saída. Pode ser uma string especificadora (semelhante ao FMT de strftime ())
ou o nome de um calendário.
-i, --Formato de entrada=STRING...
Formato de entrada, pode ser usado várias vezes. Cada data / hora será passada para o
analisadores de formato de entrada na ordem em que são fornecidos, se uma data / hora pode ser lida
com sucesso com uma determinada string de especificador de formato de entrada, esse valor será usado.
-e, --barra invertida-escapa
Permite a interpretação de escapes de barra invertida no especificador de formato de saída e entrada
cordas.
- da zona=ZONA
Interprete as datas em stdin ou na linha de comando como provenientes do fuso horário ZONE.
FORMATO SPECS PARA DURAÇÃO
Ao contrário do tempo ou dos instantes absolutos, as durações são livres de referência, ou seja, o instante de referência
não faz parte da duração. Como resultado, as durações não podem ser nomeadas, ou seja, não há
esquema de nomenclatura que se aplica a todas as durações e todas as referências de forma inequívoca.
Consequentemente, nenhum dos especificadores de formato para data / hora faz sentido para durações em
o sentido literal. No entanto, para ajudar no uso intuitivo, reutilizamos especificadores de formato quando eles
representam valores integrais e uma unidade válida para a duração, como segue:
Especificações de data:
% c equivalente a% w
% d durações em dias
% F Equivalente a% dd sem recurso a unidades maiores
% m durações em meses
% w Durações em semanas
% y equivalente a% Y
% Y durações em anos
% db Duração em dias úteis
% dB equivalente a% db
Especificações de tempo:
% H durações em horas
% I equivalente a% H
% M durações em minutos
% S durações em segundos
% T Equivalente a% Ss sem recorrer a unidades maiores
% rS Durações em segundos da vida real, incluindo segundos bissextos
% rT Equivalente a% rSs sem restaurar para unidades maiores
Especificações gerais:
% n Um caractere de nova linha
% t Um caractere de tabulação
%% Um caractere% literal
Modificadores:
% r Modificador para transformar unidades em unidades reais
% 0 Modificador para preencher valores refinados com zeros
Modificador% SPC para preencher valores refinados com espaços
b Sufixo, tratar os dias como dias úteis
A REFINAMENTO REGRA
As durações são um tanto ambíguas quando se trata de representá-las por meio do formato
especificadores. Ao contrário dos especificadores de formato nas representações de ponto no tempo, especificadores de duração
pode ter um relacionamento intralinha.
Portanto, por exemplo, uma duração de 128 segundos pode ser apresentada por "% S" como "128", mas
da mesma forma por meio de "% M:% S" como "02:08" (leia dois minutos e 8 segundos).
Existem várias abordagens para lidar com essa ambigüidade. A ferramenta ddiff seguirá,
o que chamamos de regra de refinamento. Ou seja, independentemente da posição de um formato
especificador, se for um @emph {refinamento} válido de outro especificador na string de formato,
então ele mostrará apenas o valor fracionário, ou seja, o valor em sua faixa natural com
em relação ao especificador @emph {refinado}.
% Y refinamentos possíveis:% m,% w,% d
% m refinamentos possíveis:% w,% d
% w refinamentos possíveis:% d
% d refinamentos possíveis:% H,% M,% S
% H refinamentos possíveis:% M,% S
% M refinamentos possíveis:% S
As alternativas de refinamento são listadas em ordem de precedência e são mutuamente
exclusivo. Ou seja, não é possível expressar uma duração em meses e horas sem
tendo um especificador "% d" também. Por outro lado, em uma cadeia de refinamentos internos
os elementos são opcionais, ou seja, você pode expressar uma duração em semanas e horas porque cada
dia tem 24 horas e, portanto, são 168 horas por semana.
Em caso de durações negativas (o minuendo está no futuro em relação ao subtraendo)
@emph {apenas} a unidade maior carregará o sinal de menos.
Usar a regra de refinamento mantém a string de formato extremamente simples, não há necessidade de
operadores ou uma linguagem desenvolvida para distinguir a ambigüidade do intervalo, que então
devem ser escapados porque eles também poderiam, em teoria, fazer parte dos caracteres literais de
a string de formato, resultando mais frequentemente em linhas de comando que são difíceis de criar
e ainda mais difícil de entender posteriormente (por exemplo, se usado em scripts de shell).
A regra de refinamento engenhosamente cobre o caso de 99%, mas, ao contrário de outras abordagens, há
@emph {não} forma de exibir dois valores não refinados na mesma string de formato, por exemplo, "'% w semanas
(que é% d dias) '".
EXEMPLOS
$ ddiff 2012/03/02 2012/03/02
0
$
$ ddiff 2012/03/02 2012/03/12
10
$
$ ddiff 2012/03/02 2012/04/12
41
$
$ ddiff 2012/03/12 2012/04/02
21
$
$ ddiff 2012/04/02 2012/03/12
-21
$
$ ddiff 2012-01-02 2012-02-29 -f '% dd'
58d
$
$ ddiff 2012-01-02 2012-02-29 -f '% ww% dd'
8s 2d
$
$diff 10:00:00 10:00:00
0s
$
$diff 10:01:00 10:06:00
300s
$
$diff 10:06:00 10:01:00
300s
$
$ ddiff 10:01:00 11:03:10 -f '% S seg'
3730 s
$
$ ddiff 10:01:00 11:03:10 -f '% Mm% Ss'
62m 10s
$
$ ddiff 10:01:00 11:03:10 -f '% H:% M:% S'
1:2:10
$
$ ddiff 2012-03-02T10:04:00 2012-03-02T10:14:00
600s
$
$ ddiff 2012-03-02T10: 04: 00 2012-03-02T10: 14: 00 -f '% M min'
10 minutos
$
$ ddiff 2012-03-01T12:17:00 2012-03-02T14:00:00
92580s
$
$ ddiff 2012-03-01T12: 17: 00 2012-03-02T14: 00: 00 -f '% d dias e% S segundos'
1 dia e 6180 segundos
$
Use dateutils.ddiff online usando serviços onworks.net