package tfelem import ( "strconv" "strings" "time" ) type WeekDayElement struct { UseEnglishWeekday bool UseAbbr bool Fill bool } func (this *WeekDayElement) ExpectedSize() int { if this.UseEnglishWeekday { if this.UseAbbr { return 3 } else { return 9 } } else { return 1 } } func (this *WeekDayElement) PrintElement(t time.Time) string { m := t.Weekday() if this.UseEnglishWeekday { s := m.String() if this.UseAbbr { return s[:3] } else { if this.Fill { return s + strings.Repeat(" ", 9-len(s)) } else { return s } } } else { mint := int(m) + 1 return strconv.Itoa(mint) } } func NewEnglishWeekDayElement(abbrevation bool, fill bool) *WeekDayElement { return &WeekDayElement{ UseEnglishWeekday: true, UseAbbr: abbrevation, Fill: fill, } } func NewNumbericWeekDayElement() *WeekDayElement { return &WeekDayElement{ UseEnglishWeekday: false, UseAbbr: false, Fill: false, } }