Convertire la colonna di caratteri che rappresenta la durata in numericaHo una colonna di caratteri in cui il valore di input rappresenta la durata (come: 4d 15h 5m, 2d 32m, 23h 52m, 18m), e vorrei convertirlo in un formato numerico: giorno: h: m
Ri: Converti la colonna di caratteri che rappresenta la durata in numericaUn altro modo, non più elegante ma con maggiore controllo sull'input:
//Parse Duration String
match = Regex Match(
:Character Duration,
"(([\d\.]+)d)? ?(([\d\.]+)h)? ?(([\d\.]+)m)?"
);
//Add up duration
If( Is Missing( match[3] ), 0, In Days( Num( match[3] ) ) ) +
If( Is Missing( match[5] ), 0, In Hours( Num( match[5] ) ) ) +
If( Is Missing( match[7] ), 0, In Minutes( Num( match[7] ) ) )
Ri: Converti la colonna di caratteri che rappresenta la durata in numericaPotrebbe esserci un modo più elegante per farlo, ma sono riuscito a far funzionare la formula sottostante (anche nella tabella allegata). Divide la colonna del tuo personaggio usando un delimitatore di spazio in una lista. Per ognuno di questi elementi, aggiunge la quantità di tempo appropriata in base all'ultimo carattere a una variabile che viene restituita alla fine.
durs = Words( :CharacterDuration, " " );
val = 0;
For( i = 1, i <= N Items( durs ), i++,
number = Num( Substr( durs[i], 1, Length( durs[i] ) - 1 ) );
If(
Ends With( durs[i], "d" ), val += In Days( number ),
Ends With( durs[i], "h" ), val += In Hours( number ),
Ends With( durs[i], "m" ), val += In Minutes( number )
);
);
val;