39 строки
717 Б
Go
39 строки
717 Б
Go
package delo_lib
|
|
|
|
import (
|
|
"errors"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
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
|
|
}
|