simple time util for cyclops framework

master
Piyush Harsh 5 years ago
parent 52345cc98f
commit 5bbfaf7696
  1. 36
      cyclops_utils/cyclops_utils.go
  2. 16
      main.go

@ -0,0 +1,36 @@
package cyclops_utils
import (
"time"
)
func GetReportingPeriod(inputdate string) (err error, from, to string) {
err = nil
layout := "2006-01-02"
t, err := time.Parse(layout, inputdate)
if err != nil {
return
}
y, m, d := t.Date()
valTo := t.AddDate(0, 0, -1)
to = valTo.Format("2006-01-02")
valFrom := time.Now()
if d == 1 && (m == 1 || m == 4 || m == 7 || m == 10) {
//subtracting 1 day
valFrom = t.AddDate(0,-3,0)
} else {
if m >= 1 && m <= 3 {
valFrom = time.Date(y, time.January, 1,0,0,0,0, time.UTC)
} else if m >= 4 && m <= 6 {
valFrom = time.Date(y, time.April, 1,0,0,0,0, time.UTC)
} else if m >= 7 && m <= 9 {
valFrom = time.Date(y, time.July, 1,0,0,0,0, time.UTC)
} else if m >= 10 && m <= 12 {
valFrom = time.Date(y, time.October, 1,0,0,0,0, time.UTC)
}
}
from = valFrom.Format("2006-01-02")
return
}

@ -0,0 +1,16 @@
package main
import (
"fmt"
"gitlab.com/cyclops-utilities/date-utils/cyclops_utils"
)
func main() {
err, from, to := cyclops_utils.GetReportingPeriod("2019-10-01")
if err != nil {
fmt.Errorf("Error in processing input: %s", err.Error())
} else {
fmt.Printf("From: %s, To: %s\n", from, to);
}
}
Loading…
Cancel
Save