home *** CD-ROM | disk | FTP | other *** search
/ Altsys Virtuoso 2.0K / virtuoso_20k.iso / DemoApps / Graphics / Multimedia / MPEGPlay2.3 / Source / TimeCell.m < prev    next >
Encoding:
Text File  |  1993-03-07  |  1.1 KB  |  52 lines

  1.  
  2. // TimeCell.m - Category of Cell to provide setting of hour:minute:second
  3.  
  4. #import <appkit/appkit.h>
  5.  
  6. #import <stdio.h>
  7.  
  8. #import "TimeCell.h"
  9.  
  10. @implementation Cell (TimeCell)
  11.  
  12. - setTimeValue:(int)timeInt
  13. {
  14.     int hours, minutes, seconds;
  15.     char achTime[14];
  16.  
  17.     hours = timeInt / 3600;
  18.     minutes = timeInt % 3600 / 60;
  19.     seconds = timeInt % 60;
  20.     sprintf(achTime, "%02d:%02d:%02d", hours, minutes, seconds);
  21.     [self setStringValue:achTime];
  22.     return self;
  23. }
  24.  
  25. - setTimeFloatValue:(double)timeDouble
  26. {
  27.     int hours, minutes, seconds;
  28.     double fraction;
  29.     char achTime[14], achFraction[8], *pchFraction;
  30.  
  31.     hours = timeDouble / 3600;
  32.     minutes = (int)timeDouble % 3600 / 60;
  33.     seconds = (int)timeDouble % 60;
  34.     fraction = timeDouble / 60 - seconds;
  35.     sprintf(achFraction, "%.2f", fraction);
  36.     pchFraction = index(achFraction, '.');
  37.     if (pchFraction)
  38.         ++pchFraction;
  39.     else
  40.         pchFraction = achFraction;
  41.     if (hours)
  42.         sprintf(achTime, "%02d:%02d:%02d.%s",
  43.                 hours, minutes, seconds, pchFraction);
  44.     else
  45.         sprintf(achTime, "%02d:%02d.%s", minutes, seconds, pchFraction);
  46.     [self setStringValue:achTime];
  47.     return self;
  48. }
  49.  
  50.  
  51. @end
  52.