Difference between revisions of "Input number of seconds, get a string back that shows days, hours, minutes, seconds"

From Second Life Wiki
Jump to navigation Jump to search
m (Corrections by Traven Sachs to Display Correct Output allowing for 0 seconds or more than 1 day 19-Feb-2011)
Line 5: Line 5:
   *   
   *   
   *  Input number of seconds, function will return a string with Days, Hours, Minutes, Seconds
   *  Input number of seconds, function will return a string with Days, Hours, Minutes, Seconds
   *  Corrections by Traven Sachs to Display Correct Output allowing for 0 seconds or more than 1 day 19-Feb-2011
   *  Corrections by Traven Sachs to Display Correct Output allowing for 0 seconds or more than 1 day  
  *    and improve readability with whitespace 19-Feb-2011
   */
   */


string getTime(integer secs){
string getTime(integer secs)
{
     string timeStr;
     string timeStr;
     integer days;
     integer days;
Line 14: Line 16:
     integer minutes;
     integer minutes;
   
   
     if (secs>=86400){
     if (secs>=86400)
    {
         days=llFloor(secs/86400);
         days=llFloor(secs/86400);
         secs=secs%86400;
         secs=secs%86400;
         timeStr+=(string)days+" day";
         timeStr+=(string)days+" day";
         if (days>1) {timeStr+="s";}
         if (days>1)  
         if(secs>0) {timeStr+=", ";}
        {
            timeStr+="s";
        }
         if(secs>0)  
        {
            timeStr+=", ";
        }
     }
     }
     if(secs>=3600){
     if(secs>=3600)
    {
         hours=llFloor(secs/3600);
         hours=llFloor(secs/3600);
         secs=secs%3600;
         secs=secs%3600;
         timeStr+=(string)hours+" hour";
         timeStr+=(string)hours+" hour";
         if(hours!=1){timeStr+="s";}
         if(hours!=1)
         if(secs>0){timeStr+=", ";}
        {
            timeStr+="s";
        }
         if(secs>0)
        {
            timeStr+=", ";
        }
     }
     }
     if(secs>=60){
     if(secs>=60)
    {
         minutes=llFloor(secs/60);
         minutes=llFloor(secs/60);
         secs=secs%60;
         secs=secs%60;
         timeStr+=(string)minutes+" minute";
         timeStr+=(string)minutes+" minute";
         if(minutes!=1){timeStr+="s";}
         if(minutes!=1)
        {
            timeStr+="s";
        }
        if(secs>0)
        {
            timeStr+=", ";
        }
     }
     }
     if (secs>0){
     if (secs>0)
     timeStr+=", ";
     {
    timeStr+=(string)secs+" second";
        timeStr+=(string)secs+" second";
    if(secs!=1){timeStr+="s";}
        if(secs!=1)
        {
            timeStr+="s";
        }
     }
     }
     return timeStr;
     return timeStr;
}</lsl>
}
</lsl>

Revision as of 12:06, 19 February 2011

<lsl> /*

 *  Submitted Opensource under GPL 3.0
 *  2010 Fire Centaur
 *  Description: 
 *  
 *  Input number of seconds, function will return a string with Days, Hours, Minutes, Seconds
 *  Corrections by Traven Sachs to Display Correct Output allowing for 0 seconds or more than 1 day 
 *     and improve readability with whitespace 19-Feb-2011
 */

string getTime(integer secs) {

   string timeStr;
   integer days;
   integer hours;
   integer minutes;

   if (secs>=86400)
   {
       days=llFloor(secs/86400);
       secs=secs%86400;
       timeStr+=(string)days+" day";
       if (days>1) 
       {
           timeStr+="s";
       }
       if(secs>0) 
       {
           timeStr+=", ";
       }
   }
   if(secs>=3600)
   {
       hours=llFloor(secs/3600);
       secs=secs%3600;
       timeStr+=(string)hours+" hour";
       if(hours!=1)
       {
           timeStr+="s";
       }
       if(secs>0)
       {
           timeStr+=", ";
       }
   }
   if(secs>=60)
   {
       minutes=llFloor(secs/60);
       secs=secs%60;
       timeStr+=(string)minutes+" minute";
       if(minutes!=1)
       {
           timeStr+="s";
       }
       if(secs>0)
       {
           timeStr+=", ";
       }
   }
   if (secs>0)
   {
       timeStr+=(string)secs+" second";
       if(secs!=1)
       {
           timeStr+="s";
       }
   }
   return timeStr;

} </lsl>