una transcurrido tiempo restar persona meses manualmente horas fechas entre edad dias cómo como calcular calculadora años actionscript timespan

transcurrido - ActionScript 3.0+¿Calcula el intervalo de tiempo entre dos fechas?



restar fechas en excel 2016 (9)

En ActionScript 3.0, ¿existe una forma automática de calcular el número de días, horas, minutos y segundos entre dos fechas especificadas?

Básicamente, lo que necesito es el equivalente de ActionScript de la clase .NET Timespan.

¿Alguna idea?


No hay forma automática de hacer esto. Lo mejor que puede lograr con las clases suministradas es obtener date1.time y date2.time, para dar la cantidad de milisegundos desde el 1 de enero de 1970 para dos números. A continuación, puede calcular el número de milisegundos entre ellos. Con algunas matemáticas básicas, puede derivar los segundos, horas, días, etc.


Puede encubrir los dos tiempos en milisegundos desde la época, realizar sus cálculos y luego utilizar los milisegundos resultantes para calcular estos números de intervalo de tiempo más altos.

var someDate:Date = new Date(...); var anotherDate:Date = new Date(...); var millisecondDifference:int = anotherDate.valueOf() - someDate.valueOf(); var seconds:int = millisecondDifference / 1000; ....

Los LiveDocs también son útiles para este tipo de cosas. Lo siento si el código ActionScript está un poco apagado, pero ha pasado un tiempo.

También recomendaría crear un conjunto de métodos de clases estáticas que puedan realizar estas operaciones si estás haciendo mucho de este tipo de matemáticas. Lamentablemente, esta funcionalidad básica realmente no existe en las API estándar.


En aras de la precisión, la publicación anterior de Russell es correcta hasta que llegue a una diferencia de 25 días, luego el número se vuelve demasiado grande para la variable int. Por lo tanto, declare la diferencia en milisegundos: Número;

Puede haber alguna diferencia entre el documentado getTime () y valueOf (), pero en realidad no puedo verlo


ArgumentValidation es otra clase de Mr Szalays que hace algunas comprobaciones para asegurarse de que cada método tenga los valores correctos para realizar sus tareas sin lanzar errores irreconocibles. No son esenciales para que funcione la clase TimeSpan, por lo que podría comentarlas y la clase funcionará correctamente.

Rich puede publicar la clase de validación de Argument aquí, así como también es muy útil, pero se lo dejo;




para algunos, una sola función como esta puede ser preferible ... [condensado del código de Richard Szalay]

public function timeDifference(startTime:Date, endTime:Date) : String { if (startTime == null) { return "startTime empty."; } if (endTime == null) { return "endTime empty."; } var aTms = Math.floor(endTime.valueOf() - startTime.valueOf()); return "Time taken: " + String( int(aTms/(24*60*+60*1000)) ) + " days, " + String( int(aTms/( 60*60*1000)) %24 ) + " hours, " + String( int(aTms/( 60*1000)) %60 ) + " minutes, " + String( int(aTms/( 1*1000)) %60 ) + " seconds."; }


Creé una clase de TimeSpan de ActionScript con una API similar a System.TimeSpan para llenar ese vacío, pero existen diferencias debido a la falta de sobrecarga del operador. Puedes usarlo así:

TimeSpan.fromDates(later, earlier).totalDays;

A continuación se muestra el código para la clase (perdón por la gran publicación - No incluiré las Pruebas unitarias;)

/** * Represents an interval of time */ public class TimeSpan { private var _totalMilliseconds : Number; public function TimeSpan(milliseconds : Number) { _totalMilliseconds = Math.floor(milliseconds); } /** * Gets the number of whole days * * @example In a TimeSpan created from TimeSpan.fromHours(25), * totalHours will be 1.04, but hours will be 1 * @return A number representing the number of whole days in the TimeSpan */ public function get days() : int { return int(_totalMilliseconds / MILLISECONDS_IN_DAY); } /** * Gets the number of whole hours (excluding entire days) * * @example In a TimeSpan created from TimeSpan.fromMinutes(1500), * totalHours will be 25, but hours will be 1 * @return A number representing the number of whole hours in the TimeSpan */ public function get hours() : int { return int(_totalMilliseconds / MILLISECONDS_IN_HOUR) % 24; } /** * Gets the number of whole minutes (excluding entire hours) * * @example In a TimeSpan created from TimeSpan.fromMilliseconds(65500), * totalSeconds will be 65.5, but seconds will be 5 * @return A number representing the number of whole minutes in the TimeSpan */ public function get minutes() : int { return int(_totalMilliseconds / MILLISECONDS_IN_MINUTE) % 60; } /** * Gets the number of whole seconds (excluding entire minutes) * * @example In a TimeSpan created from TimeSpan.fromMilliseconds(65500), * totalSeconds will be 65.5, but seconds will be 5 * @return A number representing the number of whole seconds in the TimeSpan */ public function get seconds() : int { return int(_totalMilliseconds / MILLISECONDS_IN_SECOND) % 60; } /** * Gets the number of whole milliseconds (excluding entire seconds) * * @example In a TimeSpan created from TimeSpan.fromMilliseconds(2123), * totalMilliseconds will be 2001, but milliseconds will be 123 * @return A number representing the number of whole milliseconds in the TimeSpan */ public function get milliseconds() : int { return int(_totalMilliseconds) % 1000; } /** * Gets the total number of days. * * @example In a TimeSpan created from TimeSpan.fromHours(25), * totalHours will be 1.04, but hours will be 1 * @return A number representing the total number of days in the TimeSpan */ public function get totalDays() : Number { return _totalMilliseconds / MILLISECONDS_IN_DAY; } /** * Gets the total number of hours. * * @example In a TimeSpan created from TimeSpan.fromMinutes(1500), * totalHours will be 25, but hours will be 1 * @return A number representing the total number of hours in the TimeSpan */ public function get totalHours() : Number { return _totalMilliseconds / MILLISECONDS_IN_HOUR; } /** * Gets the total number of minutes. * * @example In a TimeSpan created from TimeSpan.fromMilliseconds(65500), * totalSeconds will be 65.5, but seconds will be 5 * @return A number representing the total number of minutes in the TimeSpan */ public function get totalMinutes() : Number { return _totalMilliseconds / MILLISECONDS_IN_MINUTE; } /** * Gets the total number of seconds. * * @example In a TimeSpan created from TimeSpan.fromMilliseconds(65500), * totalSeconds will be 65.5, but seconds will be 5 * @return A number representing the total number of seconds in the TimeSpan */ public function get totalSeconds() : Number { return _totalMilliseconds / MILLISECONDS_IN_SECOND; } /** * Gets the total number of milliseconds. * * @example In a TimeSpan created from TimeSpan.fromMilliseconds(2123), * totalMilliseconds will be 2001, but milliseconds will be 123 * @return A number representing the total number of milliseconds in the TimeSpan */ public function get totalMilliseconds() : Number { return _totalMilliseconds; } /** * Adds the timespan represented by this instance to the date provided and returns a new date object. * @param date The date to add the timespan to * @return A new Date with the offseted time */ public function add(date : Date) : Date { var ret : Date = new Date(date.time); ret.milliseconds += totalMilliseconds; return ret; } /** * Creates a TimeSpan from the different between two dates * * Note that start can be after end, but it will result in negative values. * * @param start The start date of the timespan * @param end The end date of the timespan * @return A TimeSpan that represents the difference between the dates * */ public static function fromDates(start : Date, end : Date) : TimeSpan { return new TimeSpan(end.time - start.time); } /** * Creates a TimeSpan from the specified number of milliseconds * @param milliseconds The number of milliseconds in the timespan * @return A TimeSpan that represents the specified value */ public static function fromMilliseconds(milliseconds : Number) : TimeSpan { return new TimeSpan(milliseconds); } /** * Creates a TimeSpan from the specified number of seconds * @param seconds The number of seconds in the timespan * @return A TimeSpan that represents the specified value */ public static function fromSeconds(seconds : Number) : TimeSpan { return new TimeSpan(seconds * MILLISECONDS_IN_SECOND); } /** * Creates a TimeSpan from the specified number of minutes * @param minutes The number of minutes in the timespan * @return A TimeSpan that represents the specified value */ public static function fromMinutes(minutes : Number) : TimeSpan { return new TimeSpan(minutes * MILLISECONDS_IN_MINUTE); } /** * Creates a TimeSpan from the specified number of hours * @param hours The number of hours in the timespan * @return A TimeSpan that represents the specified value */ public static function fromHours(hours : Number) : TimeSpan { return new TimeSpan(hours * MILLISECONDS_IN_HOUR); } /** * Creates a TimeSpan from the specified number of days * @param days The number of days in the timespan * @return A TimeSpan that represents the specified value */ public static function fromDays(days : Number) : TimeSpan { return new TimeSpan(days * MILLISECONDS_IN_DAY); } /** * The number of milliseconds in one day */ public static const MILLISECONDS_IN_DAY : Number = 86400000; /** * The number of milliseconds in one hour */ public static const MILLISECONDS_IN_HOUR : Number = 3600000; /** * The number of milliseconds in one minute */ public static const MILLISECONDS_IN_MINUTE : Number = 60000; /** * The number of milliseconds in one second */ public static const MILLISECONDS_IN_SECOND : Number = 1000; }


var timeDiff:Number = endDate - startDate; var days:Number = timeDiff / (24*60*60*1000); var rem:Number = int(timeDiff % (24*60*60*1000)); var hours:Number = int(rem / (60*60*1000)); rem = int(rem % (60*60*1000)); var minutes:Number = int(rem / (60*1000)); rem = int(rem % (60*1000)); var seconds:Number = int(rem / 1000); trace(days + " << >> " +hours+ " << >> " +minutes+ " << >> " +seconds);

o

var time:Number = targetDate - currentDate; var secs:Number = time/1000; var mins:Number = secs/60; var hrs:Number = mins/60; var days:Number = int(hrs/24); secs = int(secs % 60); mins = int(mins % 60); hrs = int(hrs % 24); trace(secs + " << >> " + mins + " << >> " + hrs + " << >> " + days);