{"name":"dateToNumber","operator":null,"title":"dateToNumber","type":"command","url":"https://community.bistudio.com/wiki/dateToNumber","revid":378087,"updated":"2026-02-12T17:31:59Z","groups":["Environment"],"status":"ok","replaced_by":[],"games":[{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma2","name":"Arma 2","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":null,"effect":null,"server_exec":false},"exec":null,"description":"Convert a date to a float number, based on Jan 1st 00:00:00 = 0 and Dec 31st  23:59:59 = 1.\nThe same day and time in leap year will be different after 28th of February and 23:59 on 31st of December will be 1.00274.\n\nThis is how this command works. The 365 days of the year are presented in range 0..1. So each day will be:\n\n```sqf\n1 / 365 = 0.00273973\n```\n\nIn a leap year there are 366 days, so the range will increase by 1 day:\n\n```sqf\n1 / 365 * 366 = 1.00274\n```\n\nIn short, in a normal year the command returns in range 0...1 in a leap year it will return in range 0...1.00274.","syntaxes":[{"syntax":"dateToNumber date","since":null,"effect":null,"exec":null,"params":[{"name":"date","type":"Date","optional":false,"default":null,"description":null,"types":["Date"],"since":null,"text":"date: Date"}],"returns":{"type":"Number","types":["Number"],"description":null,"text":"Number"},"form":"unary","operator":null,"left":null,"right":{"text":"date","types":["Date"]}}],"examples":[{"text":"```sqf\n_float = dateToNumber [2035, 7, 6, 12, 0]; // 0.510959\n```","code":["_float = dateToNumber [2035, 7, 6, 12, 0]; // 0.510959"]},{"text":"```sqf\ndateToNumber date; // returns float number for the current date\n```","code":["dateToNumber date; // returns float number for the current date"]},{"text":"Calculate days from 1/1/1970:\n\n```sqf\n_fnc_daysFromEpoch =\n{\n    private _year = param [0];\n    private _days = 0;\n    for \"_i\" from 1970 to _year - 1 do\n    {\n        _days = _days + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false];\n    };\n\n    _days + linearConversion [0, 1, dateToNumber _this, 0, 365, false];\n};\n\nhint str (date call _fnc_daysFromEpoch);\n```","code":["_fnc_daysFromEpoch =\n{\n\tprivate _year = param [0];\n\tprivate _days = 0;\n\tfor \"_i\" from 1970 to _year - 1 do\n\t{\n\t\t_days = _days + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false];\n\t};\n\n\t_days + linearConversion [0, 1, dateToNumber _this, 0, 365, false];\n};\n\nhint str (date call _fnc_daysFromEpoch);"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["date","dayTime","time","numberToDate"],"notes":[],"categories":["Arma 2: New Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Environment","Introduced with Arma 2 version 1.00","Scripting Commands","Take On Helicopters: Scripting Commands"]}