2016-11-13 62 views
1

一個複雜的問題:如何訂購我在AS3字符串

我有了這個代碼(不完整的代碼,但問題的本質,我認爲):

var $pmm:String; 
var $pms:String; 
var $bmm:String; 
var $bms:String; 

function get haute1():String { return $pmm; }; 
function get haute2():String { return $pms; } 
function get basse1():String { return $bmm; }; 
function get basse2():String { return $bms; }; 

     accueil.todayHaute_txt.htmlText = haute1; 
     accueil.todayBasse_txt.htmlText = basse1; 
     accueil.todayHauteSecond_txt.htmlText = haute2; 
     accueil.todayBasseSecond_txt.htmlText = basse2; 

「 haute1「是一個小時(24小時制)。像「13h25」。

它每天都在變化。

問:如何將它們按升序排列在AS3中?

例如:如果haute1 = 15h20,haute2 = 6h00,basse1 = 11H和basse2 = 17H,該功能將使他們在這個順序: 「haute2」,然後在 「basse1」,然後 「haute1」,最後「basse2 」。

THX


編輯

我添加此代碼,我有。它幫助你嗎?

/ Assigns hours and tidal heights 
     $pmm = convdateheure($tpbs[1 + $deltapm]); 
     $pms = convdateheure($tpbs[3 + $deltapm]); 
     $bmm = convdateheure($tpbs[2 - $deltapm]); 
     $bms = convdateheure($tpbs[4 - $deltapm]); 

function convdateheure($valeur:Number):String 
{ 
    var $heure:Number = Math.floor($valeur); 
    var $minute:Number = Math.floor(Math.floor(($valeur - Math.floor($valeur)) * 100) * 0.6); 

    var hoursLabel:String = "", minsLabel:String = ""; 

    if ($heure == 24) $heure = 0; // Check if at the 24 hour mark, change to 0 
    if ($heure < 10) hoursLabel += "0" + $heure.toString(); else hoursLabel = $heure.toString(); 
    if ($minute < 10) minsLabel += "0" + $minute.toString(); else minsLabel = $minute.toString(); 

    return hoursLabel + ":" + minsLabel; 
} 
+0

請把它全部轉換成英文 –

+0

你從哪裏得到實際的字符串值?你的代碼沒有顯示。我看到你聲明變量的地方。我看到一個爲返回這些變量而定義的函數。我看到一些htmlText被設置爲等於這些變量。但是我沒有看到這些變量實際定義的任何地方(例如15h20,例如...這是您代碼的重要部分,因爲如果這些字符串是從數字數據創建的,那麼您只需要將這些數據隨着你進入一個數組,並根據該值對元素進行排序!) –

+1

我編輯了我的帖子。讓我知道它是否可以幫助你 – Steph

回答

2

如果您想訂購寫在一些字符串格式一些日期:

一種方式是,這取決於你日期字符串格式,只需將其推入陣列,並將它們分類爲字符串,然後全部閱讀。

另一種方式是首先分析這些字符串爲Date情況下,他們的財產Date.time推到數組,排序,然後做反向:解析來自有序陣列中的所有時間值轉換爲新Date情況下再使用Date.toString或類似的。

0

假設$valuer是數值:

var timesArray:Array = new Array(); 
var convertedTimesArray:Array = new Array(); 

function sortTimes():void{ 
    timesArray.push($valuer); 
    timesArray.sort(Array.NUMERIC); 
} 

function convertTimes():void{ 
    convertedTimesArray = []; // clear the array 
    for (var i:int = 0; i < timesArray.length; i++){ 
     var s:String = convdateheure(timesArray[i]); 
     convertedTimesArray.push(s); 
    } 
} 

這應該給你的實際時間,以數字順序排序的一個陣列,並以相同的數字順序排序的一個陣列,但使用轉換爲字符串值你的功能。

+0

Thx。所以我應該只是稱爲2個功能? 'sortTimes()'和'convertTimes'? – Steph

+0

更好的主意。你會看看我的代碼(作爲文件),併爲我15美元(貝寶)的變化? – Steph

+0

什麼是酷將會像添加變量firstOne,secondOne,thirdOne,fourthOne,firstOne總是在一天的頭幾個小時。 – Steph