| pilar 
 
 
 Joined: 30 Jan 2008
 Posts: 197
 
 
 
			    
 
 | 
			
				| Error decomposing Epoch Time value |  
				|  Posted: Sun Oct 01, 2023 4:52 pm |   |  
				| 
 |  
				| Hi, I am using the CCS V4.74 and the PIC18F4620, I need to decompose the value of an Epoch Time data into its equivalent years, months, days, hours, minutes and seconds, for this I have this code but it does not correspond to the month or day of the month, could someone tell me what my mistake is? 
 Here is my code:
 
  	  | Code: |  	  | #include <18F4620.h> #DEVICE ADC=8
 #fuses HS,WDT32768,PROTECT,NOLVP,NOBROWNOUT
 #use delay(clock=20MHz)
 #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)// RS232 Estándar
 
 #include <stdio.h>
 
 int32 secondsInYear = 31536000;      // 365 * 24 * 60 * 60
 int32 secondsInMonth = 2592000;      // 30 * 24 * 60 * 60
 int32 secondsInDay = 86400;          // 24 * 60 * 60
 int32 secondsInHour = 3600;          // 60 * 60
 int32 secondsInMinute = 60;          // 60
 
 int32 epochTime;
 int16 years;
 int months;
 int days;
 int hours;
 int minutes;
 int seconds;
 
 int main() {
 epochTime = 1696199000;         // data Epoch time
 
 years = epochTime / secondsInYear;
 years = 1970 + years;
 epochTime = epochTime % secondsInYear;
 
 months = epochTime / secondsInMonth;
 epochTime = epochTime % secondsInMonth;
 
 days = epochTime / secondsInDay;
 epochTime = epochTime % secondsInDay;
 
 hours = epochTime / secondsInHour;
 epochTime = epochTime % secondsInHour;
 
 minutes = epochTime / secondsInMinute;
 seconds = epochTime% secondsInMinute;
 
 printf("Years: %Ld\r\n", years);
 printf("Months: %d\r\n", months);
 printf("Days: %d\r\n", days);
 printf("Hours: %d\r\n", hours);
 printf("Minutes: %d\r\n", minutes);
 printf("Seconds: %d\r\n", seconds);
 }
 | 
 
 
  	  | Quote: |  	  | I am getting: Years: 2023
 Months: 9
 Days: 16
 Hours: 22
 Minutes: 23
 Seconds: 20
 | 
 
  	  | Quote: |  	  | when I should get: Years: 2023
 Months: 10
 Days: 1
 Hours: 22
 Minutes: 23
 Seconds: 20
 | 
 |  |