Надеюсь, что это поможет. Мне нужно рассчитать рабочие дни/часы/минуты между двумя датами. В настоящее время я использую Date :: Manip для этого, но, похоже, мне дают только дни, но не часы и минуты.Разница в дате, в рабочие дни/Часы/Мин.?
Вот отрывок из того, что у меня есть:
use Date::Manip;
Date_Init('WorkDayBeg = 09:00', 'WorkDayEnd = 17:00');
..
my $today_date = &ParseDate("today");
my $parsedStart = &ParseDate("2012-01-26 13:32:49.000");
..
my $err;
my $delta = DateCalc(ParseDate($parsedStart),$today_date,\$err,3);
..
print "Raw Delta: $delta\n";
$delta = Delta_Format($delta,2,'%st');
print "Formated Delta: $delta\n";
Сегодня 2012-01-26. Когда я запускаю сценарий, результат:
Raw Delta: +0:0:+0:0:0:0:0
Formated Delta: 0.00
... В качестве другого примера, если $ parsedStart является 2011-11-22 18: 50: 24,000, я получаю:
Raw Delta: +0:0:+0:+46:0:0:0
Formated Delta: 3974400.00
Что я не хватает, чтобы получить часы и минуты?
Спасибо.
Работает хорошо для меня (версия 6.30). Какую версию ты используешь? – Toto
Работает для меня тоже с 6.30 и 5.56. Разница, которую я заметил, находится в 5.56 'today' означает« сейчас », а« вчера »означает« 24 часа назад ». В 6.30 «сегодня» означает «полночь в эту дату», а «вчера» означает «полночь на предыдущую дату». Возможно, это путает вещи для вас. – Schwern
Я использую 6.25 (компания с регулируемой версией). Когда вы говорите, что это работает для вас, вы имеете в виду, что вы возвращаете часы и минуты, а не только такие дни, как я? – Namuna