gototp.go
func (totp *TOTP) FromNow(periods int64) int32 {
	period := (time.Now().Unix() / int64(totp.Period)) + int64(periods)
	return totp.ForPeriod(period)
}
func (totp *TOTP) FromNow(periods int64) int32 {
	period := (time.Now().Unix() / int64(totp.Period)) + int64(periods)
	return totp.ForPeriod(period)
}
func ( totp * TOTP ) FromNow ( periods int64 ) int32 { period := ( time . Now ( ) . Unix ( ) / int64 ( totp . Period ) ) + int64 ( periods ) return totp . ForPeriod ( period ) }
// Return the Time Based One Time Password for the time-period
// that is Now + the given periods.
// This is useful if you want to provide some flexibility around the acceptance
// of codes.
// For instance, you might want to accept a code that is valid in the current
// period (FromNow(0)), or that was valid in the previous period (FromNow(-1)) or that
// will be valid in the next period (FromNow(1)).
// This means that every code is therefore valid for 3 * totp.Period.
Return the Time Based One Time Password for the time - period that is Now + the given periods . This is useful if you want to provide some flexibility around the acceptance of codes . For instance you might want to accept a code that is valid in the current period ( FromNow ( 0 )) or that was valid in the previous period ( FromNow ( - 1 )) or that will be valid in the next period ( FromNow ( 1 )) . This means that every code is therefore valid for 3 * totp . Period .