Giter VIP home page Giter VIP logo

json-calendar's Introduction

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

В календаре содержится информация о выходных, сокращенных и празднечных днях. Календарь состоит из данных в формате JSON и обработчика. Обработчик позволяет узнать является ли дата выходным днем.

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

Подключение обработчика

Подключаем class Calendar

namespace Calendar;

include_once('calendar.php');

$calendar = new Calendar;

Методы

Установка даты

setDay( *string $format [, int $timestamp = time() ]* )

Дата $format устанавливается в формате date PHP. Например, $calendar->setDay("2017-02-22"); По-умолчанию устанавливается сегоднящний день.

Установка директории календарей

setCalendarDir( string $dir )

По-умолчанию директория установлена как ./data/russian/.

Проверяем праздник

$calendar->isHoliday()

Метод возвращает true, если в установленный день (setDay) есть праздник.

Проверяем сокращенный день

$calendar->isPreHoliday()

Метод возвращает true, если установленный день (setDay) сокращен на час.

Описание праздника

getHolidayDescription()

Возвращает string для установленной даты. Если данные о названии праздника отсутствуют, метод возвращает фразу "Выходной день".

Примеры

Класс определён (см. Подключение обработчика)

Сегоднящний день

echo "Сегодня ";

if ( $calendar->isHoliday() ) {

    echo "выходной (" . $calendar->getHolidayDescription() . ")";

} elseif ( $calendar->isPreHoliday() ) {

    echo "сокращенный день";

} else {

    echo "рабочий день";
}

Точная дата

$calendar->setDay("2017-02-23");

echo "23 февраля, 2017 ";

if ( $calendar->isHoliday() ) {

    echo "выходной (" . $calendar->getHolidayDescription() . ")";

} elseif ( $calendar->isPreHoliday() ) {

    echo "сокращенный день";

} else {

    echo "рабочий день";

}

Календарь в формате JSON

Календари могут хранится в любой директории. Для установки директории используйте метод setCalendarDir().

Имя файла календаря должно соотвествовать году для календаря {год}.json (например, "2017.json", "2018.json").

Пример формата календаря

{
    "January": 
    {
        "1-6":  
        {
            "rest": true, 
            "n": "Новый год"
        },
        "7":    {"rest": true, "n": "Рождество Христово"}
    },

    "June": 
    {
        "10":   {"rest": false},
        "12":   {"rest": true, "n": "День России"}
    }

}

Месяц записывается в формате PHP date date("F"); (от January до December).

Дни могут записываться в формате диапазона "1-6". В качестве разделителя используется знак минус -.

Для дня или диапазона дней возможны два варианта обозначения: выходной день или сокращенный день. Выходной день обозначается присваиванием значения true к объекту rest для текущего дня или диапазона дней. Сокращенный же день обозначается присваиваем значения false.

Например, запись "rest": true обзначает, что в этот день (или диапазон дней) выходной, а запись "rest": false говорит о том, что рабочий день сокращен на один час.

Объект n (от note) используется для описания праздника. Если объект n для выходного дня отсутвует программа по-умолчанию присвоит значение Выходной день.

Лицензия

Программа распространяется по лицензии MIT.

json-calendar's People

Contributors

alexonweb avatar alexonfire avatar

Watchers

James Cloos avatar Eugeny Konstantinov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.