Merge branch 'bwhitn-filetimemod'

This commit is contained in:
n1474335 2017-07-03 15:25:39 +00:00
commit 48d45d026e
3 changed files with 43 additions and 6 deletions

View file

@ -2301,6 +2301,11 @@ const OperationConfig = {
name: "Output units",
type: "option",
value: DateTime.UNITS
},
{
name: "Input format",
type: "option",
value: DateTime.FILETIME_FORMATS
}
]
},
@ -2314,6 +2319,11 @@ const OperationConfig = {
name: "Input units",
type: "option",
value: DateTime.UNITS
},
{
name: "Output format",
type: "option",
value: DateTime.FILETIME_FORMATS
}
]
},

View file

@ -89,8 +89,17 @@ const DateTime = {
* @returns {string}
*/
runFromFiletimeToUnix: function(input, args) {
let units = args[0];
input = new BigInteger(input).subtract(new BigInteger("116444736000000000"));
let units = args[0],
format = args[1];
if (format === "Hex") {
input = new BigInteger(input, 16);
} else {
input = new BigInteger(input);
}
input = input.subtract(new BigInteger("116444736000000000"));
if (units === "Seconds (s)"){
input = input.divide(new BigInteger("10000000"));
} else if (units === "Milliseconds (ms)") {
@ -102,6 +111,7 @@ const DateTime = {
} else {
throw "Unrecognised unit";
}
return input.toString();
},
@ -115,8 +125,11 @@ const DateTime = {
* @returns {string}
*/
runToFiletimeFromUnix: function(input, args) {
let units = args[0];
let units = args[0],
format = args[1];
input = new BigInteger(input);
if (units === "Seconds (s)"){
input = input.multiply(new BigInteger("10000000"));
} else if (units === "Milliseconds (ms)") {
@ -128,10 +141,24 @@ const DateTime = {
} else {
throw "Unrecognised unit";
}
return input.add(new BigInteger("116444736000000000")).toString();
input = input.add(new BigInteger("116444736000000000"));
if (format === "Hex"){
return input.toString(16);
} else {
return input.toString();
}
},
/**
* @constant
* @default
*/
FILETIME_FORMATS: ["Decimal", "Hex"],
/**
* @constant
* @default

View file

@ -16,7 +16,7 @@ TestRegister.addTests([
recipeConfig: [
{
op: "Windows Filetime to UNIX Timestamp",
args: ["Nanoseconds (ns)"],
args: ["Nanoseconds (ns)", "Decimal"],
},
],
},
@ -27,7 +27,7 @@ TestRegister.addTests([
recipeConfig: [
{
op: "UNIX Timestamp to Windows Filetime",
args: ["Nanoseconds (ns)"],
args: ["Nanoseconds (ns)", "Decimal"],
},
],
},