Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình tính toán sự khác biệt giữa hai khoảng thời gian

Nhập thời gian bắt đầu và dừng bằng giờ, phút và giây. Cuối cùng, chúng ta cần tìm sự khác biệt giữa thời gian bắt đầu và thời gian dừng.

Lôgic để tìm ra sự khác biệt giữa thời gian bắt đầu và thời gian dừng được đưa ra bên dưới -

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;

Ví dụ

Sau đây là chương trình để tìm sự khác biệt giữa thời gian bắt đầu và dừng lại -

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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