Nwlapcug.com


Come convertire le zecche in una data

Computer memorizzano l'ora corrente in termini di numero di "tick" che sono trascorsi da una certa data, conosciuta come l'inizio di "epoca". Un tick è una metafora per il ticchettio sonoro fatto di un orologio analogico ogni secondo, tuttavia, la lunghezza di un tick varia per ogni sistema operativo. Sistemi UNIX hanno un segno di graduazione di un secondo, mentre sistemi Windows utilizzano un segno di graduazione di 100 nanosecondi e sistemi Mac OS X essere un segno di spunta di millisecondo. Allo stesso modo, diversi sistemi utilizzano date diverse per marcare l'inizio della loro epoca. Per Windows, tale data è 1° gennaio 1601, precisamente a mezzanotte UT/GMT. Per Unix e Mac OS X, il 1° gennaio 1970, all'epoca inizia proprio mezzanotte UT/GMT. È possibile scrivere un semplice programma in linguaggio libero Ruby che porterà un numero di segni di graduazione e calcolare la data corrente da loro.

Istruzioni

1

Aprire un editor di testo e salvare il documento con il nome "tick2time.rb."

2

Incollare il codice seguente all'interno di esso:

! / usr/bin/ruby

le zecche = Integer(ARGV[1])

Se ARGV [0] = = "-s":

# do nothing

ELSIF ARGV [0] = = "..--ms":

ticks = ticks / 1000

ELSIF ARGV [0] = = "..--ns":

ticks = ticks / 1000000

fine

mette Time.at(ticks)

La prima riga è solo per gli utenti di Mac OS X o Linux: esso dovrebbe identificare il percorso dove è installato Ruby. Il programma prende il numero di segni di graduazione dalla riga di comando insieme a un argomento "spuntare lunghezza" che può essere impostato su "-s" per secondo, "-ms" per millisecondo o "-ns" per nanosecondo. Qualunque sia la lunghezza del segno di spunta, è adeguato per la zecca di secondo-lunghezza che Ruby si aspetta per la sua funzione di tempo.

3

Salvare il lavoro.

Consigli & Avvertenze

  • L'epoca è l'epoca per il sistema operativo corrente. Così, "tick2time.rb - s 0" darà risultati diversi su computer Windows e Unix, poiché ogni computer comincia la relativa epoca ai tempi drasticamente differenti.