func (c *calendar) renderStaticDaysHeader() {
	for _, v := range []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"} {
		fmt.Fprintf(c.tw, "%s\t", v)
	}
	fmt.Fprint(c.tw, "\n")
}
renderStaticDaysHeader prints the static list of days for the calendar
package nepcal
import (
	"fmt"
	"io"
	"text/tabwriter"
)
type calendar struct {
	iter int
	when Time
	tw *tabwriter.Writer
}
func newCalendar(t Time) *calendar {
	return &calendar{
		iter: 1,
		when: t,
		tw:   nil,
	}
}
func (c *calendar) flushInto(w io.Writer) {
	tw := tabwriter.NewWriter(w, 0, 0, 1, ' ', 0)
	c.tw = tw
	c.renderBSDateHeader()
	c.renderStaticDaysHeader()
	c.renderFirstRow()
	c.renderCalWithoutFirstRow()
	tw.Flush()
}
func (c *calendar) renderFirstRow() {
	offset := int(c.when.StartWeekday())
	for i := 0; i < offset; i++ {
		fmt.Fprintf(c.tw, "\t")
	}
	for i := 0; i < (7 - offset); i++ {
		fmt.Fprintf(c.tw, "\t%s", c.reprValue(c.iter))
		c.next()
	}
	fmt.Fprint(c.tw, "\n")
}
func (c *calendar) renderCalWithoutFirstRow() {
	daysInMonth := c.when.NumDaysInMonth()
	for c.iter <= daysInMonth {
		for i := 0; i < 7; i++ {
			if c.iter > daysInMonth {
				break
			}
			fmt.Fprintf(c.tw, "\t%s", c.reprValue(c.iter))
			c.next()
		}
		fmt.Fprint(c.tw, "\n")
	}
}