12 hour clock and offset problem
- From: Kenetic <dbroda@xxxxxxxxx>
- Date: Sat, 16 Jun 2007 15:40:52 -0000
I'm trying to convert an input time to the offset time in a 12 hour
clock system. It's giving me a headache. The am and pm must be the
right ones when the offset is added to the input time ($temptime). I
understand it's better to use a 24 hour clock, but unfortunately I
can't in this situation. Everything needs to be done in 12-hour
format.
In short, 10:00 am with an offset of -3 should result in 1:00 pm;
10:00 pm with an offset of -3 should result in 1:00 am.
I've been at this for awhile, sadly, and cannot wrap my head around
it. Any help to point me in the right direction would be fantastic.
This is my latest version, which works to a certain extent--the
difficulty is the AM/PM to switch.
my $offset = -3;
my $tempTime = "10:00 pm";
sub myMod {
my ( $a, $b ) = @_;
my $div = $a / $b;
return $a - int( $div ) * $b;
}
sub getutc {
my $time = shift;
my $GMTOffset = shift;
$time =~ /(\d{1,2}):(\d\d)\s(.+)*/;
# Is UTC a .5 remainder? if so, chop it off--we use
# it later regardless
my $hours = $1;
if (myMod($hours,int($hours)) == -0.5) {
$hours - 0.5;
}
my $minutes = $2;
my $ampm = $3;
#Take hours and subtract whole number in Offset Time
$hours = $hours - int($GMTOffset);
if ($hours >= 12) {
$ampm = "pm";
$hours = $hours - 12
}
# If 0.5 on the Offset, then add 30 minutes and wrap
if (myMod($GMTOffset, int($GMTOffset)) == -0.5) {
$minutes = $minutes + 30;
if ($minutes >= 60) {
$minutes = $minutes % 60;
$hours = $hours + 1;
}
}
$minutes = sprintf("%02d", $minutes);
$hours = sprintf("%2d", $hours);
if ($hours == 0) { $hours = "12";}
return $hours.":".$minutes." ".$ampm;
}
my $theTime = getutc($tempTime, $offset);
print "\nCurrent time: $tempTime\n";
print "Adjust ".$offset." hours\n";
print "Adjusted to: $theTime\n";
.
- Follow-Ups:
- Re: 12 hour clock and offset problem
- From: Purl Gurl
- Re: 12 hour clock and offset problem
- From: John W. Krahn
- Re: 12 hour clock and offset problem
- From: Purl Gurl
- Re: 12 hour clock and offset problem
- From: Paul Lalli
- Re: 12 hour clock and offset problem
- From: Charlton Wilbur
- Re: 12 hour clock and offset problem
- From: Brian McCauley
- Re: 12 hour clock and offset problem
- Prev by Date: Re: Template
- Next by Date: pairwise_test
- Previous by thread: FAQ 9.16 How do I decode a CGI form?
- Next by thread: Re: 12 hour clock and offset problem
- Index(es):
Relevant Pages
|