Menu

[r331]: / trunk / framework / OSMF / org / osmf / utils / TimeUtil.as  Maximize  Restore  History

Download this file

126 lines (116 with data), 3.6 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*****************************************************
*
* Copyright 2009 Akamai Technologies, Inc. All Rights Reserved.
*
*****************************************************
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
*
* The Initial Developer of the Original Code is Akamai Technologies, Inc.
* Portions created by Akamai Technologies, Inc. are Copyright (C) 2009 Akamai
* Technologies, Inc. All Rights Reserved.
*
*****************************************************/
package org.osmf.utils
{
[ExcludeClass]
/**
* @private
*
* Class that contains static utility methods for manipulating and working
* with time values.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public class TimeUtil
{
/**
* Takes a time as a string and returns that time in seconds.
* <p>
* The following time values are supported:<ul>
* <li>full clock format in "hours:minutes:seconds" (for example 00:03:00).</li>
* <li>offset time (for example 10s or 2m).</li>
* </ul></p>
* Note: Offset times without units (for example 10) are assumed to be seconds.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public static function parseTime(value:String):Number
{
var time:Number = 0;
var a:Array = value.split(":");
if (a.length > 1)
{
// Clock format, e.g. "hh:mm:ss"
time = a[0] * 3600;
time += a[1] * 60;
time += Number(a[2]);
}
else
{
// Offset time format, e.g. "1h", "8m", "10s"
var mul:int = 0;
switch (value.charAt(value.length-1))
{
case 'h':
mul = 3600;
break;
case 'm':
mul = 60;
break;
case 's':
mul = 1;
break;
}
if (mul)
{
time = Number(value.substr(0, value.length-1)) * mul;
}
else
{
time = Number(value);
}
}
return time;
}
/**
* Takes time in seconds and returns a string in a time code
* format of hh:mm:ss. If hours are not present, returns only
* mm:ss. For example, passing a value of <code>18750</code> will
* return <code>05:12:30</code>, but passing a value of <code>31</code>
* will return <code>00:31</code>. So in other words, minutes and seconds
* will always be present.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public static function formatAsTimeCode(sec:Number):String
{
var h:Number = Math.floor(sec / 3600);
h = isNaN(h) ? 0 : h;
var m:Number = Math.floor((sec % 3600) / 60);
m = isNaN(m) ? 0 : m;
var s:Number = Math.floor((sec % 3600) % 60);
s = isNaN(s) ? 0 : s;
return (h == 0 ? "" : (h < 10 ? "0" + h.toString() + ":" : h.toString() + ":")) +
(m < 10 ? "0" + m.toString() : m.toString()) + ":" +
(s < 10 ? "0" + s.toString() : s.toString());
}
}
}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.