我必须将标准时间转换为动作脚本中的传统时间。这是我到目前为止所得到的。我非常感谢你的帮助。
// 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 = "";
}
答案 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);
}
答案 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;
}