如何在ActionScript 3.0中将标准时间HH:MM:SS转换为传统时间

时间:2014-07-23 20:42:29

标签: actionscript-3 flash

我必须将标准时间转换为动作脚本中的传统时间。这是我到目前为止所得到的。我非常感谢你的帮助。

// This line makes the button, btnConvert wait for a mouse click

// When the button is clicked, the convertTime function is called

btnConvert.addEventListener(MouseEvent.CLICK, convertTime);

// This line makes the textinput wait for a mouse click

// When this component is clicked, the clearLabels function is called

txtinStandard.addEventListener(MouseEvent.CLICK, clearLabels);

// Declare Global Variables

var traditionalTime:String;    // traditional time

// This is the convertTime function

// e:MouseEvent is the click event experienced by the button

// void indicates that the function does not return a value

function convertTime(e:MouseEvent):void
{ 

// declare the variables
    var standardTime:String;    // standard time entered by user

    standardTime = txtinStandard.text;     // get standard time from user
    convertToTraditional(standardTime);    // call the convertToTraditional function

    // output an appropriate message in the label
    lblOutput.text = standardTime + " is equivalent to " + traditionalTime;
}

// This is function convertToTraditional

// s – is the standard time

// It determines the traditional time based on the value of s

function convertToTraditional(s:String){

}

// This is the clearLabels function

// e:MouseEvent is the click event experienced by the textInput

// void indicates that the function does not return a value

function clearLabels(e:MouseEvent):void

{

     lblOutput.text = "";

     txtinStandard.text = "";
}

2 个答案:

答案 0 :(得分:3)

您可以尝试使用内置的as3工具。

    private function convertToTraditional(s:String):String {
        const date:String = "01/01/1970 ";
        var curTime:Date = new Date(Date.parse(date + s));
        var df:DateTimeFormatter = new DateTimeFormatter("en_US");
        df.setDateTimePattern("h:mm:ss a");
        return df.format(curTime);
    }

Date.parse()

dateTimeFormatter.setDateTimePattern()

答案 1 :(得分:1)

假设你的意思是标准时间是24小时制,传统时间是AM / PM时钟:

function convertTime(e:MouseEvent):void
{ 

    // declare the variables
    var standardTime:String;    // standard time entered by user

    standardTime = txtinStandard.text;     // get standard time from user
    traditionalTime = convertToTraditional(standardTime);    // call the convertToTraditional function

    // output an appropriate message in the label
    lblOutput.text = standardTime + " is equivalent to " + traditionalTime;
}

function convertToTraditional(s:String):String{
    // separate the standard time into it parts (hour, minutes, seconds)
    var parts:Array = s.split(":");

    if(parts.length != 3)
    {
        return "invalid time. require HH:MM:SS";
    }

    var hour:int = int(parts[0]);
    var min:int = int(parts[1]);
    var sec:int = int(parts[2]);

    // check for errors in each of the time parts
    if(hour > 23 || min > 59 || sec > 59)
    {
        return "invalid time";
    }

    // determine if the hour is PM or AM
    var am_pm:String = hour >= 12 ? "PM" : "AM";

    // modding the hour by 12 will give you the correct traditional hour
    hour %= 12;
    if(hour == 0) hour = 12; // 0 is a special case

    // create the padding for each time part (prepend with a 0 if it's less than 10)
    var hourPad:String = hour < 10 ? "0" : "";
    var minPad:String = min < 10 ? "0" : "";
    var secPad:String = sec < 10 ? "0" : "";

    // string it all together
    return hourPad + hour.toString() + ":" + minPad + min.toString() + ":" + secPad + sec.toString() + " " + am_pm;
}