[SOLVED] Convert C code to PHP

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
U-238
Forum Newbie
Posts: 5
Joined: Mon Feb 02, 2004 12:12 am
Location: Australia

Convert C code to PHP

Post by U-238 »

Can someone please help me convert this simple C function to PHP. I tried myself with not a lot of luck :(. It takes an int value of seconds and returns a string like "3 days 23 hours 12 minutes 3 seconds"

Thaks in advance!

Code: Select all

extern char const * seconds_to_timestr(unsigned int totsecs)
{
    static char tempї256];
    int         days;
    int         hours;
    int         minutes;
    int         seconds;
    
    days    = totsecs/(24*60*60);
    hours   = totsecs/(60*60) - days*24;
    minutes = totsecs/60 - days*24*60 - hours*60;
    seconds = totsecs - days*24*60*60 - hours*60*60 - minutes*60;
    
    if (days>0)
	sprintf(temp,"%d day%s %d hour%s %d minute%s %d second%s",
                days,days==1 ? "" : "s",
                hours,hours==1 ? "" : "s",
                minutes,minutes==1 ? "" : "s",
                seconds,seconds==1 ? "" : "s");
    else if (hours>0)
	sprintf(temp,"%d hour%s %d minute%s %d second%s",
                hours,hours==1 ? "" : "s",
                minutes,minutes==1 ? "" : "s",
                seconds,seconds==1 ? "" : "s");
    else if (minutes>0)
	sprintf(temp,"%d minute%s %d second%s",
                minutes,minutes==1 ? "" : "s",
                seconds,seconds==1 ? "" : "s");
    else
	sprintf(temp,"%d second%s.",
                seconds,seconds==1 ? "" : "s");
    
    return temp;
}
redmonkey
Forum Regular
Posts: 836
Joined: Thu Dec 18, 2003 3:58 pm

Post by redmonkey »

Untested...

Code: Select all

<?php

function seconds_to_timestr($totsecs)
{
  $temp    = false;
  $days    = floor($totsecs/(24*60*60));
  $hours   = floor($totsecs/(60*60) - $days*24);
  $minutes = floor($totsecs/60 - $days*24*60 - $hours*60);
  $seconds = $totsecs - $days*24*60*60 - $hours*60*60 - $minutes*60;




  if (floor($days) > 0)
  {
    $temp = sprintf("%d day%s %d hour%s %d minute%s %d second%s",
    $days,$days==1 ? "" : "s",
    $hours,$hours==1 ? "" : "s",
    $minutes,$minutes==1 ? "" : "s",
    $seconds,$seconds==1 ? "" : "s");
  }
  elseif (floor($hours) > 0)
  {
    $temp = sprintf("%d hour%s %d minute%s %d second%s",
    $hours,$hours==1 ? "" : "s",
    $minutes,$minutes==1 ? "" : "s",
    $seconds,$seconds==1 ? "" : "s");
  }
  elseif (floor($minutes) > 0)
  {
    $temp = sprintf("%d minute%s %d second%s",
    $minutes,$minutes==1 ? "" : "s",
    $seconds,$seconds==1 ? "" : "s");
  }
  else
  {
    $temp = sprintf("%d second%s.",
    $seconds,$seconds==1 ? "" : "s");
  }
  return $temp;
}

?>
U-238
Forum Newbie
Posts: 5
Joined: Mon Feb 02, 2004 12:12 am
Location: Australia

Post by U-238 »

IT WORKS!!!!

Thankyou very much redmonkey!
Post Reply