diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2018-03-14 18:18:31 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2018-03-17 13:49:41 -0400 |
commit | b54a1c9686eec3c1114e9b58cb67679ba59c45bd (patch) | |
tree | 0bdb2f3ed51ff077a8c3e337e4bc556aacec108e /bin-src/util | |
parent | 54feeb027d6e5a760b49769dfe695ea2591dc6fe (diff) |
directories
Diffstat (limited to 'bin-src/util')
-rw-r--r-- | bin-src/util/date.go | 51 | ||||
-rw-r--r-- | bin-src/util/html.go | 14 |
2 files changed, 65 insertions, 0 deletions
diff --git a/bin-src/util/date.go b/bin-src/util/date.go new file mode 100644 index 0000000..3b5c457 --- /dev/null +++ b/bin-src/util/date.go @@ -0,0 +1,51 @@ +package util + +import ( + "html/template" + "time" +) + +func Date2HTML(t time.Time) template.HTML { + return template.HTML(t.Local().Format("<time datetime=\"2006-01-02 15:04:05\" title=\"2006-01-02 15:04:05\">2006-01-02 <span class=time>15:04:05</span></time>")) +} + +func DateTime2HTML(t time.Time) template.HTML { + return template.HTML(t.Local().Format("<time datetime=\"2006-01-02 15:04:05\">2006-01-02 15:04:05</time>")) +} + +func DateTime2ColorHTML(t time.Time) template.HTML { + return template.HTML(t.Local().Format("<time class=daily datetime=\"2006-01-02 15:04:05\">2006-01-02 15:04:05</time>")) +} + +type TimeRange struct { + A, B time.Time +} + +func (tr TimeRange) ToPct(point time.Time) float64 { + dur_ab := tr.B.Sub(tr.A) + dur_ap := point.Sub(tr.A) + return float64(dur_ap) / float64(dur_ab) +} + +type ByteRange struct { + A, B byte +} + +func (br ByteRange) FromPct(pct float64) byte { + ab := int16(br.B) - int16(br.A) + ap := int16(pct * float64(ab)) + return byte(int16(br.A) + ap) +} + +func PctCap(pct float64) float64 { + if pct < 0 { + pct = 0 + } else if pct > 1 { + pct = 1 + } + return pct +} + +func MapRange(tr TimeRange, br ByteRange, t time.Time) byte { + return br.FromPct(PctCap(tr.ToPct(t))) +} diff --git a/bin-src/util/html.go b/bin-src/util/html.go new file mode 100644 index 0000000..af2ce60 --- /dev/null +++ b/bin-src/util/html.go @@ -0,0 +1,14 @@ +package util + +import ( + "html/template" + "strings" +) + +func HTMLCellEscapeString(s string) template.HTML { + html := template.HTMLEscapeString(s) + if strings.TrimSpace(html) == "" { + html = " " + } + return template.HTML(html) +} |