schet/pkg/delo_lib/delo_lib.go

53 строки
1,1 КиБ
Go

package delo_lib
import (
"errors"
"math"
"strconv"
"strings"
)
const (
символовПослеЗапятойДоКопеек = 2
)
func ОкруглитьРубли(сумма float64) float64 {
return RoundFloat(сумма, символовПослеЗапятойДоКопеек)
}
func RoundFloat(number float64, roundingTempDigitsCount int) float64 {
temp := math.Pow(10, float64(roundingTempDigitsCount))
return math.Round(number*temp) / temp
}
func ДатувКвартал(in string) (int, error) {
parts := strings.Split(in, ".")
if len(parts) < 3 {
return 0, errors.New("формат даты")
}
месяц, err := strconv.ParseInt(parts[1], 10, 64)
if err != nil {
return 0, err
}
квартал, err := МесяцвКвартал(месяц)
if err != nil {
return 0, err
}
return квартал, nil
}
func МесяцвКвартал(in int64) (int, error) {
if in < 1 || in > 12 {
return 0, errors.New("неправильный месяц")
}
switch in {
case 1, 2, 3:
return 1, nil
case 4, 5, 6:
return 2, nil
case 7, 8, 9:
return 3, nil
}
return 4, nil
}