Производственный календарь России для go

GO производственный календарь

CI

Пакет проверяет признак праздника/рабочего дня на заданную дату, набор данных предоставлен Порталом открытых данных Минэкономразвития России (включая дополнения из Консультант+)

Работает на основе кодогенерации из исходного CSV файла.

Установка

go get github.com/shlima/russian_calendar

Использование

package main

import (
	"time"

	calendar "github.com/shlima/russian_calendar"
)

func main() {
	cal := calendar.New(time.Now())

	// Returns true if today is a day off or a public holiday 
	cal.IsHoliday()
	// Returns true if today is a working day
	cal.IsWorkday()
	// Returns the next business day (including the current one)
	cal.GteWorkday()
	// Returns the previous business day (including the current one)
	cal.LteWorkday()
	// Returns the next business day
	cal.GtWorkday()
	// Returns the previous business day
	cal.LtWorkday()
	// Returns the next weekend day (including the current one)
	cal.GteHoliday()
	// Returns the previous weekend day (including the current one)
	cal.LteHoliday()
	// Returns the next weekend day
	cal.GtHoliday()
	// Returns the previous weekend day
	cal.LtHoliday()

	// Returns the next day
	cal.Next()
	// Returns the previous day
	cal.Prev()
}

Использование со своим индексом

package main

import (
	"time"

	calendar "github.com/shlima/russian_calendar"
)

func main() {
	source := &calendar.SourceMap{
		2001: {
			1: {
				1: true,
			},
		},
	}
	
	cal := calendar.NewSourced(time.Now(), source)
	cal.GteHoliday()
}

Обновление данных

  • обновить файл calendar.csv (из Консультант+)
  • make build (сгенерирует go hash)
  • git push
Similar Resources

gRPC сервис на Go для работы с пользователями.

gRPC Service AuthUsersApp на Go В работе применены следующие концепции: Разработка gRPC сервиса на основе proto файла на Go: добавление, удаление, авт

Jul 25, 2022

Приложение представляет собой API на языке Golang с функциями CRUD для MySQL.

golang-crud-mysql Приложение представляет собой API на языке Golang с функциями CRUD для MySQL. Также реализован UI при помощи HTML5, CSS3, немного JQ

Jan 18, 2022

Шаблон для создания Телеграм ботов на Golang

✈️ GolangTgBot_Template - Шаблон для телеграм ботов 🤖 🛠 Стек технологий: 📄 О проекте: После написания пяти ботов, я понял, что нужно написать начал

Jun 20, 2022
Dec 14, 2021
Сервис для сбора метрик в формате Prometheus из сервиса snipe-it

Snipeit-exporter Сервис для сбора метрик в формате Prometheus из сервиса snipe-it Язык разработки: Go Использование и конфигурирование сервиса В проек

Nov 14, 2021
Приложение для бекапа конфига Eltex SMG.

Основной исполняемый файл дожен лежать в корне. В папке ip_list лежит один файл со списком айпишников. Адреса надо добавлять с новой строки. Стоит сле

Dec 1, 2021
Создание библиотеки Go для Android

gomobile-simple-example Пример создания библиотеки для android Структура проекта: gomobile-simple-example/ --app/ ------libs/ --libmobile/ ----src/ --

Dec 4, 2021
Dec 14, 2021
Go клиент для интеграции с Долями

dolyame Go клиент для интеграции с Долями Создание клиента: cert, err := tls.LoadX509KeyPair("cert.pem", "private.key") if err != nil { return err }

Dec 17, 2021
REST API сервиса для просмотра видео роликов.

Go PostgreSQL О проекте Этот репозиторий представляет собой реализацию REST API сервиса для просмотра видео роликов. Используемы технологии Go Postgre

Dec 18, 2021
Сервис для сбора метрик в формате Prometheus из сервиса snipe-it

Snipeit-exporter Сервис для сбора метрик в формате Prometheus из сервиса snipe-it Язык разработки: Go Использование и конфигурирование сервиса В проек

Nov 14, 2021
Библиотека для формирования client_secret при подключении к ЕСИА через oAuth 2.0

pkcs7 Библиотека для формирования client_secret при подключении к ЕСИА через oAuth 2.0. Библиотека использует gogost реализацию GOST 3410 от http://ww

Dec 30, 2021
Telehabr - Telegram чат-бот для публикации постов с сайта Habr.

telehabr Telegram чат-бот для публикации постов с сайта Habr. Требования Go 1.17.X; токен, полученный от бота @BotFather. Запуск Для начала, необходим

Jan 15, 2022