home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 3 / FreeSoftwareCollection3pd199x-jp.img / pao / ms_dos / cdplay / src / cdtime.c < prev    next >
Text File  |  1980-01-02  |  2KB  |  104 lines

  1. /******************************************************************************
  2. **
  3. **        CD 関係のプログラム用時間ルーチン
  4. **
  5. **        Programed by Y.HIRATA Nifty-ID (NAB03321)
  6. **
  7. ******************************************************************************/
  8.  
  9. #include "cdtime.h"
  10.  
  11. /**************************  時間の大小を求める  *****************************/
  12. /*    TIME1 : TIME2    : RETURN    */
  13. /*          <            : = -1        */
  14. /*          =            : =  0        */
  15. /*          >            : = +1        */
  16. int    cmptime( min1,sec1,frame1,min2,sec2,frame2 )
  17. signed char    min1, sec1, frame1 ;
  18. signed char    min2, sec2, frame2 ;
  19. {
  20.     if ( min1 > min2 ) {
  21.         return( 1 ) ;                                    /*  TIME1 > TIME2    */
  22.  
  23.     } else if ( min1 == min2 ) {
  24.         if ( sec1 > sec2 ) {
  25.             return( 1 ) ;                                /*  TIME1 > TIME2    */
  26.  
  27.         } else if ( sec1 == sec2 ) {
  28.             if ( frame1 > frame2 ) {
  29.                 return( 1 ) ;                            /*  TIME1 > TIME2    */
  30.  
  31.             } else if ( frame1 == frame2 ) {
  32.                 return( 0 ) ;                            /*  TIME1 = TIME2    */
  33.  
  34.             } else {
  35.                 return( -1 ) ;                            /*  TIME1 < TIME2    */
  36.             }
  37.  
  38.         } else {
  39.             return( -1 ) ;                                /*  TIME1 < TIME2    */
  40.         }
  41.  
  42.     } else {
  43.         return( -1 ) ;                                    /*  TIME1 < TIME2    */
  44.     }
  45. }
  46.  
  47. /****************************  時間差を求める  *******************************/
  48. void subtime( min1,sec1,frame1,min2,sec2,frame2,min,sec,frame )
  49. char    min1, sec1, frame1 ;
  50. char    min2, sec2, frame2 ;
  51. char    *min, *sec, *frame ;
  52. {
  53.     *min = 0 ; *sec = 0 ; *frame = 0 ;
  54.     if ( frame1 >= frame2 ) {
  55.         *frame = frame1 - frame2 ;
  56.     } else {
  57.         frame1 += 75 ;
  58.         if ( sec1 == 0 ) {
  59.             sec1 += 60 ;
  60.             min1 -- ;
  61.         }
  62.         sec1 -- ;
  63.         *frame = frame1 - frame2 ;
  64.     }
  65.     if ( sec1 >= sec2 ) {
  66.         *sec = sec1 - sec2 ;
  67.     } else {
  68.         sec1 += 60 ;
  69.         min1 -- ;
  70.         *sec = sec1 - sec2 ;
  71.     }
  72.     *min = min1 - min2 ;
  73.  
  74. }
  75.  
  76. /****************************  時間和を求める  *******************************/
  77. void addtime( min1,sec1,frame1,min2,sec2,frame2,min,sec,frame )
  78. char    min1, sec1, frame1 ;
  79. char    min2, sec2, frame2 ;
  80. char    *min, *sec, *frame ;
  81. {
  82.     min1 += min2 ;
  83.     sec1 += sec2 ;
  84.     frame1 += frame2 ;
  85.     if ( sec1 >= 60 ) {
  86.         sec1 -= 60 ;
  87.         min1 ++ ;
  88.     }
  89.     if ( frame1 >= 75 ) {
  90.         frame1 -= 75 ;
  91.         sec1 ++ ;
  92.         if ( sec1 >= 60 ) {
  93.             sec1 -= 60 ;
  94.             min1 ++ ;
  95.         }
  96.     }
  97.     *min = min1 ;
  98.     *sec = sec1 ;
  99.     *frame = frame1 ;
  100.  
  101.     return ;
  102. }
  103.  
  104.