diff options
Diffstat (limited to 'contrib/awk/awklib/eg/lib')
| -rw-r--r-- | contrib/awk/awklib/eg/lib/mktime.awk | 105 | 
1 files changed, 0 insertions, 105 deletions
diff --git a/contrib/awk/awklib/eg/lib/mktime.awk b/contrib/awk/awklib/eg/lib/mktime.awk deleted file mode 100644 index 57ff20e53aedd..0000000000000 --- a/contrib/awk/awklib/eg/lib/mktime.awk +++ /dev/null @@ -1,105 +0,0 @@ -# mktime.awk --- convert a canonical date representation -#                into a timestamp -# Arnold Robbins, arnold@gnu.org, Public Domain -# May 1993 - -BEGIN    \ -{ -    # Initialize table of month lengths -    _tm_months[0,1] = _tm_months[1,1] = 31 -    _tm_months[0,2] = 28; _tm_months[1,2] = 29 -    _tm_months[0,3] = _tm_months[1,3] = 31 -    _tm_months[0,4] = _tm_months[1,4] = 30 -    _tm_months[0,5] = _tm_months[1,5] = 31 -    _tm_months[0,6] = _tm_months[1,6] = 30 -    _tm_months[0,7] = _tm_months[1,7] = 31 -    _tm_months[0,8] = _tm_months[1,8] = 31 -    _tm_months[0,9] = _tm_months[1,9] = 30 -    _tm_months[0,10] = _tm_months[1,10] = 31 -    _tm_months[0,11] = _tm_months[1,11] = 30 -    _tm_months[0,12] = _tm_months[1,12] = 31 -} -# decide if a year is a leap year -function _tm_isleap(year,    ret) -{ -    ret = (year % 4 == 0 && year % 100 != 0) || -            (year % 400 == 0) - -    return ret -} -# convert a date into seconds -function _tm_addup(a,    total, yearsecs, daysecs, -                         hoursecs, i, j) -{ -    hoursecs = 60 * 60 -    daysecs = 24 * hoursecs -    yearsecs = 365 * daysecs - -    total = (a[1] - 1970) * yearsecs - -    # extra day for leap years -    for (i = 1970; i < a[1]; i++) -        if (_tm_isleap(i)) -            total += daysecs - -    j = _tm_isleap(a[1]) -    for (i = 1; i < a[2]; i++) -        total += _tm_months[j, i] * daysecs - -    total += (a[3] - 1) * daysecs -    total += a[4] * hoursecs -    total += a[5] * 60 -    total += a[6] - -    return total -} -# mktime --- convert a date into seconds, -#            compensate for time zone - -function mktime(str,    res1, res2, a, b, i, j, t, diff) -{ -    i = split(str, a, " ")    # don't rely on FS - -    if (i != 6) -        return -1 - -    # force numeric -    for (j in a) -        a[j] += 0 - -    # validate -    if (a[1] < 1970 || -        a[2] < 1 || a[2] > 12 || -        a[3] < 1 || a[3] > 31 || -        a[4] < 0 || a[4] > 23 || -        a[5] < 0 || a[5] > 59 || -        a[6] < 0 || a[6] > 60 ) -            return -1 - -    res1 = _tm_addup(a) -    t = strftime("%Y %m %d %H %M %S", res1) - -    if (_tm_debug) -        printf("(%s) -> (%s)\n", str, t) > "/dev/stderr" - -    split(t, b, " ") -    res2 = _tm_addup(b) - -    diff = res1 - res2 - -    if (_tm_debug) -        printf("diff = %d seconds\n", diff) > "/dev/stderr" - -    res1 += diff - -    return res1 -} -BEGIN  { -    if (_tm_test) { -        printf "Enter date as yyyy mm dd hh mm ss: " -        getline _tm_test_date -        t = mktime(_tm_test_date) -        r = strftime("%Y %m %d %H %M %S", t) -        printf "Got back (%s)\n", r -    } -}  | 
