计算开始日期与到期日期之间的天数差异,并计算到到期日期为止的剩余天数

时间:2019-07-09 12:11:46

标签: datetime go duration calculation

我的模型上有startDatedueDate。我要根据模型的daysToStartdaysLeft值在模型上附加durationstartDatedueDate字段。

    从现在到startDate的天数
  • daysLeft应该相差
  • 持续时间是从开始到到期日期的天数
  • daysToStart是now和startDate
  • 之间的区别

startDatedueDatetime.Time的形式存储在db中。所有计算都应标准化为UTC时间。

编辑: startDate:"2019-07-09T00:00:00Z" dueDate:"2019-07-10T00:00:00Z"

type Objective struct {
  // fields
}

// attach daysLeft, duration and daysToStart

func (r *Objective) calculateDuration() {
    r.Duration = int(math.Round(r.DueDate.Sub(r.StartDate).Hours() / 24))
}

func (r *Objective) calculateDaysLeft() {
    r.DaysLeft = int(math.Round(r.DueDate.Sub(time.Now().UTC()).Hours()/24)) + 1
}

func (r *Objective) calculateDaysToStart() {
    r.DaysToStart = int(math.Round(r.StartDate.Sub(time.Now().UTC()).Hours()/24)) + 1
}

对于提供的示例,它返回不正确的值,例如,尽管startDate是今天,但它返回dasToStart = 1,所以它应该为零。

0 个答案:

没有答案