Skip to content

Commit 6938773

Browse files
Add decimal hours date field in script
1 parent de8a6f3 commit 6938773

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

extensions/web-scripts/web-scripts.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -324,14 +324,15 @@ define(['requirePath', './scripts.xml', './script-editor.xml'], function(require
324324
"type": "field_dropdown",
325325
"name": "FIELD",
326326
"options": [
327-
[ "yearweek (0-53)", "W" ],
327+
[ "hours (decimal)", "H.ms" ],
328328
[ "weekday (0-6)", "w" ],
329-
[ "year", "Y" ],
330329
[ "month (1-12)", "m" ],
331330
[ "day", "d" ],
332-
[ "minutes", "M" ],
333331
[ "hours", "H" ],
334-
[ "seconds", "S" ]
332+
[ "minutes", "M" ],
333+
[ "seconds", "S" ],
334+
[ "yearweek (0-53)", "W" ],
335+
[ "year", "Y" ]
335336
]
336337
}, {
337338
"type": "input_value",
@@ -345,10 +346,11 @@ define(['requirePath', './scripts.xml', './script-editor.xml'], function(require
345346
Blockly.Lua['lha_date'] = function(block) {
346347
var field = block.getFieldValue('FIELD');
347348
var value = Blockly.Lua.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_NONE);
348-
var code = "os.date('%" + field + "', " + value + ")";
349-
var numRe = new RegExp('^[VwYmdMHS]$');
350-
if (numRe.test(field)) {
351-
code = "tonumber(" + code + ")";
349+
var code;
350+
if (field === 'H.ms') {
351+
code = "(function(h, m, s) return tonumber(h) + tonumber(m) / 60 + tonumber(s) / 3600; end)(string.match(os.date('%H %M %S', " + value + "), '(%d+) (%d+) (%d+)'))";
352+
} else {
353+
code = "tonumber(os.date('%" + field + "', " + value + "))";
352354
}
353355
return [code, Blockly.JavaScript.ORDER_MEMBER];
354356
};

0 commit comments

Comments
 (0)