The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > A UNIX a dummies Kérdések és válaszok > Válaszok a gyakori kérdésekre > Tippek és oktatóanyagok
.
google unix.com



Tippek és oktatóanyagok Hasznos cikkek a felhasználóink számára.

LinkBacks (?)
LinkBack to this Thread: http://www.unix.com/tips-tutorials/31944-simple-date-time-calulation-bash.html
Írta: Miatt Típus Dátum
yoga_sawant's Könyvjelzõk címû Delicious Ez a téma Refback 12-25-2008 09:43 AM

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Get dátum és az idő az elmúlt 1 óra az aktuális dátumot spch2o Shell programozás és Scripting 5 08-29-2008 05:32 AM
Processing log file alapján dátum / idő ráfordítás és a dátum / idő a naplófájl felcicomáz Shell programozás és Scripting 4 03-16-2008 11:23 AM
egy egyszerű módja a konvertáló időpont másodpercben normális időpont travian HP-UX 2 11-23-2006 12:25 PM
egyszerű bash szkriptet ftp? satnamx Shell programozás és Scripting 1 04-21-2006 12:18 PM
Egyszerű Bash Script xaphalanx Shell programozás és Scripting 3 12-21-2005 03:54 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack (1) Téma eszközök Keresés a téma Értékelés: Thread Rating: 1 votes, 4.00 average. Megjelenítési módok
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 10-08-2006
ripat ripat is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Oct 2006
Helyszín: Belgium
Posts: 438
Egyszerű dátum és idő calulation a Bash

A GNU dátum parancsnokság teljes nyalánkság, de nem, amikor kiszámítani a dátum és az idő különbség. Itt van, amit kitaláltam miután megnézte, hogy több mint egy megoldás.

Kódot kell saját magyaráznom.

Kód:
#!/bin/bash

date2stamp () {
    date --utc --date "$1" +%s
}

stamp2date (){
    date --utc --date "1970-01-01 $1 sec" "+%Y-%m-%d %T"
}

dateDiff (){
    case $1 in
        -s)   sec=1;      shift;;
        -m)   sec=60;     shift;;
        -h)   sec=3600;   shift;;
        -d)   sec=86400;  shift;;
        *)    sec=86400;;
    esac
    dte1=$(date2stamp $1)
    dte2=$(date2stamp $2)
    diffSec=$((dte2-dte1))
    if ((diffSec < 0)); then abs=-1; else abs=1; fi
    echo $((diffSec/sec*abs))
}

# USAGE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 

# convert a date into a UNIX timestamp
    stamp=$(date2stamp "2006-10-01 15:00")
    echo $stamp

# from timestamp to date
    stamp2date $stamp

# calculate the number of days between 2 dates
    # -s in sec. | -m in min. | -h in hours  | -d in days (default)
    dateDiff -s "2006-10-01" "2006-10-32"
    dateDiff -m "2006-10-01" "2006-10-32"
    dateDiff -h "2006-10-01" "2006-10-32"
    dateDiff -d "2006-10-01" "2006-10-32"
    dateDiff  "2006-10-01" "2006-10-32"

# number of seconds between two times
    dateDiff -s "17:55" "23:15:07"
    dateDiff -m "17:55" "23:15:07"
    dateDiff -h "17:55" "23:15:07"

# number of minutes from now until the end of the year
    dateDiff -m "now" "2006-12-31 24:00:00 CEST"

# Other standard goodies from GNU date not too well documented in the man pages
    # assign a value to the variable dte for the examples below
    dte="2006-10-01 06:55:55"
    echo $dte

    # add 2 days, one hour and 5 sec to any date
    date --date "$dte  2 days 1 hour 5 sec"

    # substract from any date
    date --date "$dte 3 days 5 hours 10 sec ago"
    date --date "$dte -3 days -5 hours -10 sec"

    # or any mix of +/-. What will be the date in 3 months less 5 days
    date --date "now +3 months -5 days"

    # time conversions into ISO-8601 format (RFC-3339 internet recommended format)
    date --date "sun oct 1 5:45:02PM" +%FT%T%z
    date --iso-8601=seconds --date "sun oct 1 5:45:02PM"
    date --iso-8601=minutes

    # time conversions into RFC-822 format
    date --rfc-822 --date "sun oct 1 5:45:02PM"
Figyelmeztetés: A nem szabványos formátum % s esetleg nem működik minden változat időpont. Works fine of my GNU 5.2.1 Dátum

Last edited by ripat; 10-09-2006 at 11:57 AM.. Ok: Added néhány lehetőséget, hogy a funkció DateDiff
 

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 04:15 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0