40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package lib
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
// UpdateClock get and updates (on i3bar) info about system clock.
|
|
func (c *MyConfig) UpdateClock() {
|
|
var (
|
|
InitialDelay = 100 * time.Millisecond
|
|
LoopIterationDelay = 1 * time.Second
|
|
Delay = InitialDelay
|
|
ticker = time.NewTicker(Delay)
|
|
)
|
|
|
|
for range ticker.C {
|
|
if Delay == InitialDelay {
|
|
Delay = LoopIterationDelay
|
|
ticker.Reset(Delay)
|
|
}
|
|
|
|
currentTime := time.Now()
|
|
hours, minutes, _ := currentTime.Clock()
|
|
year, month, day := currentTime.Date()
|
|
dow := currentTime.Weekday()
|
|
rmonth := [12]string{"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"}
|
|
rdow := [7]string{"Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"}
|
|
|
|
myclock := fmt.Sprintf(" %s, %d %s %d % 2d:%02d ", rdow[dow], day, rmonth[month-1], year, hours, minutes)
|
|
|
|
if myclock != c.Values.ClockTime {
|
|
c.Values.ClockTime = myclock
|
|
c.Channels.UpdateReady <- true
|
|
}
|
|
}
|
|
}
|
|
|
|
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|