2023-08-21 03:07:06 +01:00
|
|
|
package templatefuncs
|
2023-03-02 17:40:04 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"codeflow.dananglin.me.uk/apollo/spruce/internal/cv"
|
|
|
|
)
|
|
|
|
|
|
|
|
// FormatDuration outputs the employment/education
|
|
|
|
// duration as a formatted string.
|
2023-08-21 03:07:06 +01:00
|
|
|
func FormatDuration(duration cv.Duration) string {
|
2023-03-02 17:40:04 +00:00
|
|
|
var start string
|
|
|
|
|
2023-08-21 03:07:06 +01:00
|
|
|
startDate, err := duration.Start.Parse()
|
2023-03-02 17:40:04 +00:00
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
start = "Unknown"
|
|
|
|
} else {
|
|
|
|
start = fmt.Sprintf("%s, %d", startDate.Month().String(), startDate.Year())
|
|
|
|
}
|
|
|
|
|
|
|
|
var end string
|
|
|
|
|
2023-08-21 03:07:06 +01:00
|
|
|
if duration.Present {
|
2023-03-02 17:40:04 +00:00
|
|
|
end = "Present"
|
|
|
|
} else {
|
2023-08-21 03:07:06 +01:00
|
|
|
endDate, err := duration.End.Parse()
|
2023-03-02 17:40:04 +00:00
|
|
|
if err != nil {
|
|
|
|
end = "Unknown"
|
|
|
|
} else {
|
|
|
|
end = fmt.Sprintf("%s, %d", endDate.Month().String(), endDate.Year())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return start + " - " + end
|
|
|
|
}
|