Jump to content

The logic behind distributing seconds into larger time units.


Botre

Recommended Posts

LAST UPDATE: MARCH 6, 2015

 

This is about distribution not conversion.

This is not the most effective way to do it: many (if not all) of the inner multiplications are redundant, but I think they are helpful to demonstrate the logic behind the calculations.

int totalSeconds = 90600; // Variable
byte secondsPerMinute = 60; // "Constant"
byte minutesPerHour = 60; // "Constant"
byte hoursPerDay = 24; // "Constant"

int days = totalSeconds / (secondsPerMinute * minutesPerHour * hoursPerDay);

int hours = (totalSeconds % (secondsPerMinute * minutesPerHour * hoursPerDay)) / (secondsPerMinute * minutesPerHour);

int minutes = ((totalSeconds % (secondsPerMinute * minutesPerHour * hoursPerDay)) % (secondsPerMinute * minutesPerHour)) / secondsPerMinute;

int seconds = ((totalSeconds % (secondsPerMinute * minutesPerHour * hoursPerDay)) % (secondsPerMinute * minutesPerHour)) % secondsPerMinute;
private int[] distributeSeconds(long seconds) {
		int d[] = new int[4];
		d[0] = (int) (seconds / 86400); // Days.
		d[1] = (int) ((seconds % 86400) / 3600); // Hours.
		d[2] = (int) (((seconds % 86400) % 3600) / 60); // Minutes.
		d[3] = (int) (((seconds % 86400) % 3600) % 60); // Seconds.
		return d;
	}
Edited by Botre
  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...