Existe uma calculadora de calendário de linha de comando?

5

Existe um cálculo de calendário de linha de comando que fornece esses recursos?

  • Cálculo do intervalo de datas (mais | menos)
  • Formato de entrada e saída especificado pelo usuário
por Howard 27.10.2012 / 01:25

3 respostas

7

O comando date fará muito disso para você.

Por exemplo, 1 de novembro mais 3 semanas é date -j -v+3w -f"%m/%d/%y" "11/01/10"

Aqui estão alguns exemplos da página man:

O comando:

 date "+DATE: %Y-%m-%d%nTIME: %H:%M:%S"

exibirá:

 DATE: 1987-11-21
 TIME: 13:36:16

No fuso horário Europa / Londres, o comando:

 date -v1m -v+1y

exibirá:

 Sun Jan  4 04:15:24 GMT 1998

onde é atualmente Mon Aug 4 04:15:24 BST 1997.

O comando:

 date -v1d -v3m -v0y -v-1d

exibirá o último dia de fevereiro do ano 2000:

 Tue Feb 29 03:18:00 GMT 2000

Então, vamos fazer o comando:

 date -v30d -v3m -v0y -v-1m

porque não há data como 30 de fevereiro.

O comando:

 date -v1d -v+1m -v-1d -v-fri

exibirá a última sexta-feira do mês:

 Fri Aug 29 04:31:11 BST 1997

onde é atualmente Mon Aug 4 04:31:11 BST 1997.

O comando:

 date 0613162785

define a data para '' 13 de junho de 1985, 16:27 ''.

 date "+%m%d%H%M%Y.%S"

pode ser usado em uma máquina para imprimir a data adequada para configuração em outra.

O comando:

 date 1432

define a hora para 2:32 PM, sem modificar a data.

Finalmente, o comando:

 date -j -f "%a %b %d %T %Z %Y" "'date'" "+%s"

pode ser usado para analisar a saída da data e expressá-la no tempo da Época.

    
por 27.10.2012 / 02:40
4

Como o Zoredache diz, você pode facilmente alcançá-lo usando qualquer linguagem de programação de script.

Aqui está um exemplo em Ruby

 > irb
 1.9.3-p286 :001 > require 'date'
  => true
 1.9.3-p286 :014 > Date.new(2012,11,1) - Date.new(2012,1,2)                                                                                                                                                                                                                    
  => (304/1) 
 1.9.3-p286 :015 > Date.new(2012,11,1) + 10
  => #<Date: 2012-11-11 ((2456243j,0s,0n),+0s,2299161j)> 
 1.9.3-p286 :016 > Date.new(2012,11,1) - 205
  => #<Date: 2012-04-10 ((2456028j,0s,0n),+0s,2299161j)> 
    
por 27.10.2012 / 02:02
4

Quanto aos formatos de entrada e saída personalizados, confira dateutils . Ele fornece o comando dadd para fazer o cálculo do intervalo de data da Data (mais-menos):

$ dadd -i '%B %d %Y' 'November 1 2012' +3w
2012-11-22
$ dadd 2012-11-22 -3w -f '%B %d %Y'
November 01 2012

A opção -i|--input-format funciona em todas as ferramentas e suporta a maioria dos strptime(3) especificadores. O mesmo para a opção -f|--format .

Aviso: sou o autor do conjunto de ferramentas.

    
por 03.02.2014 / 14:25