18_2.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. #include <time.h>
  2. #include <iostream.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. class Time{
  6. public:
  7.   Time(char* s=NULL);
  8. void operator+(Time& ti);
  9. void operator-(Time& ti);
  10. void Display();
  11. protected:
  12. int hour;
  13. int minute;
  14. int second;
  15. };
  16. Time::Time(char* s)
  17. {
  18.   char str[9]={0};
  19.   char t[3]={0};
  20.   if(s)
  21. strncpy(str, s, 8);
  22.   else
  23.     _strtime(str);
  24. hour = atoi( strncpy(t, str, 2) ) % 24;
  25. minute = atoi( strncpy(t, &str[3], 2) ) % 60;
  26. second = atoi( strncpy(t, &str[6], 2) ) % 60;  
  27. }
  28. void Time::operator+(Time& ti)
  29. {
  30.   int st;
  31.   st = second + ti.second;
  32. second = (st) % 60;
  33. st = st/60 + minute + ti.minute;
  34. minute = (st) % 60;
  35. st = st/60 + hour + ti.hour;
  36. hour = (st) % 24;
  37. }
  38. void Time::operator-(Time& ti)
  39. {
  40.   int st;
  41. st = 60 + second - ti.second;
  42. second = st % 60;
  43. st = 60 + st/60 + minute - ti.minute -1;
  44. minute = st % 60;
  45. st = 24 + st/60 + hour - ti.hour -1;
  46. hour = (st) % 24;
  47. }
  48. void Time::Display()
  49. {
  50.   char result[9] = "XX:XX:XX";
  51.   result[0]='0'+hour%10;
  52. result[1]='0'+hour/10;
  53. result[3]='0'+minute%10;
  54.   result[4]='0'+minute/10;
  55. result[6]='0'+second%10;
  56. result[7]='0'+second/10;
  57. cout <<result <<endl;
  58. }
  59. void main()
  60. {
  61.   Time a;
  62. Time b("02:15:30");
  63.   a + b;
  64. a.Display();
  65. }
  66.