AS3:计算两次之间的时差?

时间:2012-03-16 08:55:05

标签: actionscript-3 flash actionscript

我想创建一个计算两次之间时差的函数。 例如,我发送时间为

     timedifference(1 AM,5 PM);

我如何计算下午1点到下午5点之间的时差? 谁能帮我?

提前致谢。

2 个答案:

答案 0 :(得分:3)

这是我想要的答案:

public static function timeDifference(startTime:Date, endTime:Date) : String
{
    if (startTime == null) { return "startTime empty."; }
    if (endTime   == null) { return "endTime empty."; }
    //trace(" endTime.valueOf() "+endTime.valueOf()+" startTime.valueOf() "+startTime.valueOf())
    var aTms:* = Math.floor(endTime.valueOf() - startTime.valueOf());
    var timeTaken:* =( int(aTms/(    60*60*1000)) %24 );
    //trace(timeTaken);
    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.";
}

使用此功能:

var myDate:Date = new Date("3/18/2012 10:00 PM");
var myDate1:Date= new Date("3/19/2012 12:00 PM");

timeDifference(myDate,myDate1);

答案 1 :(得分:1)

我认为你输入时间是一个字符串,因为你有上午和下午...如果你问我,这是一个坏主意,但是因为那就是你生病了,只是试着去拍它。

你首先必须分割字符串,如果你在PM,则加12小时,然后为时间做2 - 时间1 ...

trace(timedif("1 AM", "3 PM"));

function timedif(string1:String, string2:String){
    var time1 = string1.split(" ");
    var time2 = string2.split(" ");

    var newtime1:int = time1[0];
    var newtime2:int = time2[0];

    if(time1[1] == "PM"){ newtime1 = newtime1 + 12; }
    if(time2[1] == "PM"){ newtime2 = newtime2 + 12; }

    var difrence = newtime2 - newtime1;
    return difrence;
}

我相信这是你问题的灵感,我不是说它是一个很好的解决方案