Advertisement
sornram9254

C - Date Duration Calculator

Jun 13th, 2014
704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.73 KB | None | 0 0
  1. /****************************************************************    
  2. * Sornram9254 - linkedin.com/in/sornram9254         *
  3. *                               *
  4. * Ref 1 :   Convert from human readable date to epoch   *
  5. *           http://goo.gl/qG3Nta            *
  6. *                               *
  7. * Ref 2 :   C Library - <time.h>                *
  8. *           http://goo.gl/FCMGKl            *
  9. ****************************************************************/
  10. #include <stdio.h>
  11. #include <time.h>
  12. int sDate(int year1,int mon1,int day1)
  13. {
  14.     //----------------------
  15.     struct tm st;
  16.     st.tm_year = year1-1900;
  17.     st.tm_mon = mon1-1; // Month
  18.     st.tm_mday = day1;  // Day
  19.     st.tm_hour = 0;     // Hour
  20.     st.tm_min = 0;      // Min
  21.     st.tm_sec = 0;      // Sec
  22.     st.tm_isdst = -1;   // Is DST on? 1 = yes, 0 = no, -1 = unknown
  23.     //----------------------
  24.     time_t start_t;
  25.     start_t = mktime(&st);
  26.     //printf("%d\r\n",start_t);
  27. }
  28. int eDate(int year2,int mon2,int day2)
  29. {
  30.     //----------------------
  31.     struct tm et;
  32.     et.tm_year = year2-1900;
  33.     et.tm_mon = mon2-1; // Month
  34.     et.tm_mday = day2;  // Day
  35.     et.tm_hour = 0;     // Hour
  36.     et.tm_min = 0;      // Min
  37.     et.tm_sec = 0;      // Sec
  38.     et.tm_isdst = -1;   // Is DST on? 1 = yes, 0 = no, -1 = unknown
  39.     //----------------------
  40.     time_t end_t;
  41.     end_t = mktime(&et);
  42.     //printf("%d",end_t);
  43. }
  44. int main ()
  45. {
  46.     int resultDays,isdst;
  47.     int year1,mon1,day1,hour1,min1,sec1;
  48.     int year2,mon2,day2,hour2,min2,sec2;
  49.    
  50.     printf("startDate : Year Mon Day\r\n");
  51.     scanf("%d %d %d",&year1,&mon1,&day1);
  52.    
  53.     printf("endDate : Year Mon Day\r\n");
  54.     scanf("%d %d %d",&year2,&mon2,&day2);
  55.    
  56.     double diff_t;
  57.    
  58.     time_t start_t;
  59.     time_t end_t;
  60.    
  61.     start_t = sDate(year1,mon1,day1);
  62.     end_t = eDate(year2,mon2,day2);
  63.    
  64.     diff_t = difftime(end_t, start_t);
  65.     resultDays = diff_t / (60 * 60 * 24);   // sec min hour
  66.    
  67.     printf("%d",resultDays);
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement