Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 두 기간의 차이를 계산하는 프로그램

<시간/>

시작 및 중지 시간을 시, 분, 초로 입력합니다. 마지막으로 시작 시간과 중지 시간의 차이를 찾아야 합니다.

시작 시간과 중지 시간 간의 차이를 찾는 논리 아래에 주어진다 -

while (stop.sec > start.sec){
   --start.min;
   start.sec += 60;
}
diff->sec = start.sec - stop.sec;
while (stop.min > start.min) {
   --start.hrs;
   start.min += 60;
}
diff->min = start.min - stop.min;
diff->hrs = start.hrs - stop.hrs;

예시

다음은 시작 시간과 종료 시간의 차이를 찾는 프로그램입니다. −

#include <stdio.h>
struct time {
   int sec;
   int min;
   int hrs;
};
void diff_between_time(struct time t1,
struct time t2,
struct time *diff);
int main(){
   struct time start_time, stop_time, diff;
   printf("Enter start time. \n");
   printf("Enter hours, minutes and seconds: ");
   scanf("%d %d %d", &start_time.hrs,
   &start_time.min,
   &start_time.sec);
   printf("Enter the stop time. \n");
   printf("Enter hours, minutes and seconds: ");
   scanf("%d %d %d", &stop_time.hrs,
   &stop_time.min,
   &stop_time.sec);
   // Difference between start and stop time
   diff_between_time(start_time, stop_time, &diff);
   printf("\ntime Diff: %d:%d:%d - ", start_time.hrs,
   start_time.min,
   start_time.sec);
   printf("%d:%d:%d ", stop_time.hrs,
   stop_time.min,
   stop_time.sec);
   printf("= %d:%d:%d\n", diff.hrs,
   diff.min,
   diff.sec);
   return 0;
}
// Computes difference between time periods
void diff_between_time(struct time start,
struct time stop,
struct time *diff){
   while (stop.sec > start.sec) {
      --start.min;
      start.sec += 60;
   }
   diff->sec = start.sec - stop.sec;
   while (stop.min > start.min) {
      --start.hrs;
      start.min += 60;
   }
   diff->min = start.min - stop.min;
   diff->hrs = start.hrs - stop.hrs;
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

Enter start time.
Enter hours, minutes and seconds: 12 45 57
Enter the stop time.
Enter hours, minutes and seconds: 20 35 20
time Diff: 12:45:57 - 20:35:20 = -8:10:37