Pull to refresh

Библиотека расчёта периодов времени для платформы .NET

Reading time2 min
Views1.6K
Original author: Jani Giannoudis
Вступление
В процессе написания программного обеспечения для другого проекта, я столкнулся с необходимостью работы с расчётами периодов времени. Эти расчёты были важной частью решения, соответственно требования к корректности и аккуратности результатов были высоки.

Необходимая функциональность затрагивала следующие области:

1. Поддержку индивидуальных периодов времени
2. Работу с календарём периодов внутри календарного года
3. Работу с календарём периодов, выходящим за рамки календарного года (фискальный год или школьный учебный год)

Такие расчёты должны были быть доступны как для серверных компонент (веб-сервисы и задачи), так и для «толстых» клиентов (Silverlight).

Анализ ситуации привёл меня к выводу, что ни компоненты .NET Framework (чего я не ожидал), ни другие доступные инструменты не соответствуют всем моим требованиям. А поскольку я уже сталкивался с подобными проблемами в прежних проектах, то и решил разработать для этих целей библиотеку.

Несколько циклов разработки привели к созданию библиотеки Time Period, доступной ныне для таких сред исполнения:

1. .NET Framework версии 2 и выше
2. .NET Framework для Silverlight с версии 4
3. .NET Framework для Windows Phone с версии 7

С целью демонстрации части функциональности библиотеки, я сделал приложение на Silverlight, назвал его Calendar Period Collector и разместил по адресу http://www.cpc.itenso.com/. Приложение демонстрирует поиск календарных периодов.

Далее читаем перевод в блоге (много кода, не удается качественно его перенести на Хабр):
Читать далее.

Статья стала лучшей статьёй на тему C# на сайте CodeProject в марте 2011 г., а также лучшей статьей сайта CodeProject в марте 2011 г.

Исходные коды и ссылки:
Исходный код проекта на CodeProject: Скачать код.
Исходный код проекта на box.com: Скачать код.
Ссылка на оригинал статьи: автор Jani Giannoudis.

Убедительная просьба
Прежде чем минусовать заметку, не читая статью, сделайте всё же усилие — посмотрите хотя бы на объём проделанной работы. И если ваш минус следствие того, что статья не полностью опубликованы на Хабре и вы готовы оказать помощь с качественным переносом кода — с удовольствием приму вашу помощь и выложу её здесь полностью.
Tags:
Hubs:
Total votes 21: ↑15 and ↓6+9
Comments4

Articles