2009-08-18 5 views
0

J'ai ce en haut de mon fichier de configuration personnelle (ainsi que les jours fériés, qui sont respectés, donc je sais que le fichier est en cours de lecture ...):Pourquoi WorkDayBeg et WorkDayEnd ne fonctionnent pas dans Date :: Manip?

WorkDayBeg = 08:00 
WorkDayEnd = 17:00 

... et pourtant, quand Je fais un delta de 08h00 à 17h00 en mode business, il est dit 8 heures au lieu de 9. Il est en défaut d'une journée de travail de 09h00 à 17h00.

Une idée pourquoi?

+2

Publiez le code qui vous donne l'erreur. –

+2

Peut-être que ça vous donne une heure de pause déjeuner? ;-) – RET

Répondre

4

Je ne vois que le comportement:

#!/usr/bin/perl 

use strict; 
use warnings; 

use Date::Manip; 

Date_Init('WorkDayBeg = 08:00', 'WorkDayEnd = 17:00'); 

print 'Not in business mode: ', 
    DateCalc(ParseDate('8:00'), ParseDate('17:00')), "\n", 
    'In business mode: ', 
    DateCalc(ParseDate('8:00'), ParseDate('17:00'), undef, 2), "\n"; 
 
C:\Temp> bun 
Not in business mode: +0:0:0:0:9:0:0 
In business mode: +0:0:0:1:0:0:0 

Comme prévu, la différence est neuf heures sinon en mode d'affaires et une journée de travail si en mode entreprise.

+0

Vous avez absolument raison. Je ne veux même pas admettre ce qui m'avait troublé, mais il suffit de dire que le code qui a suivi convertissant les jours ouvrables/heures en heures pures était où le problème résidait. Merci pour la vérification de la tête. – Marcus

Questions connexes