zenity/date_darwin.go
2022-03-29 15:18:49 +01:00

40 lines
833 B
Go

package zenity
import (
"time"
"github.com/ncruces/zenity/internal/zenutil"
)
func calendar(text string, opts options) (time.Time, error) {
var date zenutil.Date
year, month, day := time.Now().Date()
if time.January <= opts.month && opts.month <= time.December {
month = opts.month
}
if 1 <= opts.day && opts.day <= 31 {
day = opts.day
}
if opts.year != nil {
year = *opts.year
}
date.Date = time.Date(year, month, day, 0, 0, 0, 0, time.UTC).Unix()
date.OK, date.Cancel, date.Extra = getAlertButtons(opts)
date.Format = "yyyy-MM-dd"
if opts.title != nil {
date.Text = *opts.title
date.Info = text
} else {
date.Text = text
}
out, err := zenutil.Run(opts.ctx, "date", date)
str, err := strResult(opts, out, err)
if err != nil {
return time.Time{}, err
}
return time.Parse("2006-01-02", str)
}