Преобразование длительности в секундах в часы, минуты и секунды на ActionScript

18.06.2011 12:26 / Артём Волк / 792 просмотра / ...

Интервалы, которые определены в секундах (например, длительность видео-ролика) удобно представлять в виде 00:00:00 (часы:минуты:секунды) для лучшей читабельности.

package crisp.routine
{
	public class TimeUtils
	{						
		public static function toMovieTime(input:Number, withHours:Boolean = true, roundSeconds:Boolean = true):String
		{
			if (roundSeconds)
			{
				input = Math.ceil(input); // На случай, если дробное
			}

			var hoursString:String = '00';
			var minutesString:String = '00';			
			var secondsString:String = '00';						
			var hours:Number = 0;
			var minutes:Number = 0;
			var seconds:Number = 0;			

			hours = Math.floor(input / (60 * 60));
			input = input % (60 * 60);

			minutes = Math.floor(input / 60);
			input = input % 60;

			seconds = input;

			hoursString = (hours >= 10) ? hours.toString() : '0' + hours.toString();
			minutesString = (minutes >= 10) ? minutes.toString() : '0' + minutes.toString();
			secondsString = (seconds >= 10) ? seconds.toString() : '0' + seconds.toString();								

			return (withHours ? hoursString + ':' : '') + minutesString + ':' + secondsString;
		}

	}
}