2 go.cypherpunks.ru/tai64n -- Pure Go TAI64/TAI64N implementation
3 Copyright (C) 2020-2022 Sergey Matveev <stargrave@stargrave.org>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, version 3 of the License.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
30 "go.cypherpunks.ru/tai64n/v2"
37 flag.CommandLine.Output(),
38 "Replace \"@HEX(TAI64)\"-prefixed line with human readable UTC.\n",
42 leapsecs := flag.Bool("leapsecs", false, "Take leap seconds into account: honest TAI->UTC")
43 db := flag.String("leapsecsdb", "", "Use that leapsecs.dat leap seconds database")
47 buf, err := ioutil.ReadFile(*db)
51 tai64n.LeapsecsDBLoad(buf)
54 scanner := bufio.NewScanner(os.Stdin)
61 if err = scanner.Err(); err != nil {
68 os.Stdout.WriteString(s + "\n")
71 sep = strings.IndexByte(s, byte(' '))
73 os.Stdout.WriteString(s + "\n")
76 t, err = tai64n.Decode(s[1:sep])
81 t = tai64n.LeapsecsSub(t)
83 os.Stdout.WriteString(t.Format(tai64n.LocalFmt) + s[sep:] + "\n")