| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Посчитать разницу между датами без учета выходных |
| Автор: Suppir 1.4.2014, 14:03 |
| Добрый день. Есть две строки: $a = '28/03/2014'; $b = '31/03/2014'; Нужно посчитать разницу между этими двумя датами без учета выходных дней. Должно получиться, по идее, 2 дня (пятница и понедельник). Подскажите, как проще всего сделать? |
| Автор: arto 1.4.2014, 14:49 |
| perldoc Date::Manip и определить свой календарь выходных, либо попробовать Date::Holidays. |
| Автор: Bulat 1.4.2014, 15:37 | ||
С помощью модуля Time::Local
Разница между первой датой и последней - общая разница в секундах и из этого вычитаешь дни(секунды) соответствующие выходным дням! |
| Автор: tzirechnoy 1.4.2014, 17:20 |
| Это никак не сделать просто. Учитывая, что выходные у нас назначаются решэниями правительства и каждый год разные -- тебе нужно будет создать где-то БД выходных, и, что ещё хужэ, постоянно её обновлять. На этом фоне вопросы алгоритмики такого действия, в общем, несущественны. |
| Автор: Suppir 1.4.2014, 21:46 |
| Думаю, что праздниками можно пренебречь... На c# код: [code=c#] DateTime start = new DateTime(2011,05,17); DateTime end = new DateTime(2011, 05, 31); int count = 0; while (start != end) { start =start.AddDays(1); if ((start.DayOfWeek != DayOfWeek.Saturday) && (start.DayOfWeek != DayOfWeek.Sunday)) count++; } Console.WriteLine(count); Console.ReadKey(); [/code] |