dateToNumber: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[Category:ArmA 2: New Scripting Commands List\|{{uc:{{PAGENAME}}}}\]\]\s*" to "")
m (Some wiki formatting)
 
(57 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma2 |Game name=
|game1= arma2
|version1= 1.00


|1.00|Game version=
|game2= arma2oa
____________________________________________________________________________________________
|version2= 1.50


| Convert a date to a float number, based on Jan 1st 00:00:00 <nowiki>=</nowiki> 0 and Dec 31st  23:59:59 <nowiki>=</nowiki> 1. The 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 <br><br>
|game3= tkoh
This is how this command works. The 365 days of the year are presented in range 0...1. So each day will be:<br>
|version3= 1.00
<tt>1 / 365 <nowiki>=</nowiki>  0.00273973</tt> <br>
In a leap year there are 366 days, so the range will increase by 1 day:<br>
<tt>1 / 365  *  366 <nowiki>=</nowiki> 1.00274</tt><br>
In short, in a normal year the command returns in range 0...1 in a leap year it will return in range 0...1.00274|DESCRIPTION=
____________________________________________________________________________________________


| '''dateToNumber''' date |SYNTAX=
|game4= arma3
|version4= 0.50


|p1= date: [[Array]] - array in [[date]] format  |PARAMETER1=  
|gr1= Environment


|p2= |PARAMETER2=  
|descr= Convert a date to a float number, based on Jan 1st 00:00:00 = 0 and Dec 31st  23:59:59 = 1. The 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.<br><br>
This is how this command works. The 365 days of the year are presented in range 0...1. So each day will be:
<sqf>1 / 365 = 0.00273973</sqf>
In a leap year there are 366 days, so the range will increase by 1 day:
<sqf>1 / 365 * 366 = 1.00274</sqf>
In short, in a normal year the command returns in range 0...1 in a leap year it will return in range 0...1.00274.


|p3= |PARAMETER3=  
|s1= [[dateToNumber]] date


| [[Number]] |RETURNVALUE=
|p1= date: [[Array]] - array in [[date]] format


|x1= <code>_float = [[dateToNumber]] [2035,7,6,12,0]; //0.510959</code>|EXAMPLE1=
|r1= [[Number]]


|x2= <code>[[dateToNumber]] [[date]]; //will return float number for the current date.</code>|EXAMPLE2=
|x1= <sqf>_float = dateToNumber [2035,7,6,12,0]; // 0.510959</sqf>


|x2= <sqf>dateToNumber date; // returns float number for the current date</sqf>


|x3= Calculate days from 1/1/1970: <code>fnc_daysFromEpoc =  
|x3= Calculate days from 1/1/1970:
<sqf>
fnc_daysFromEpoc =  
{
{
[[private]] _year = [[param]] [0];
private _year = param [0];
[[private]] _days = 0;
private _days = 0;
[[for]] "_i" [[from]] 1970 [[to]] _year - 1 [[do]]
for "_i" from 1970 to _year - 1 do  
{
{
_days = _days + [[round]] [[linearConversion]] [0, 1, [[dateToNumber]] [_i, 12, 31, 23, 59], 0, 365, [[false]]];
_days = _days + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false];
};
};
_days + [[linearConversion]] [0, 1, [[dateToNumber]] _this, 0, 365, [[false]]];
_days + linearConversion [0, 1, dateToNumber _this, 0, 365, false];
};
};


[[hint]] [[str]] ([[date]] [[call]] fnc_daysFromEpoc);</code>|EXAMPLE3=
hint str (date call fnc_daysFromEpoc);
</sqf>


____________________________________________________________________________________________
|seealso= [[date]] [[dayTime]] [[time]] [[numberToDate]]
 
| [[date]], [[daytime]], [[time]], [[numberToDate]] |SEEALSO=
 
|  |MPBEHAVIOUR=
____________________________________________________________________________________________
}}
}}
<h3 style='display:none'>Notes</h3>
<dl class='command_description'>
<!-- Note Section BEGIN -->
<!-- Note Section END -->
</dl>
<h3 style='display:none'>Bottom Section</h3>
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Latest revision as of 13:12, 13 May 2022

Hover & click on the images for description

Description

Description:
Convert a date to a float number, based on Jan 1st 00:00:00 = 0 and Dec 31st 23:59:59 = 1. The 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.

This is how this command works. The 365 days of the year are presented in range 0...1. So each day will be:
1 / 365 = 0.00273973
In a leap year there are 366 days, so the range will increase by 1 day:
1 / 365 * 366 = 1.00274
In short, in a normal year the command returns in range 0...1 in a leap year it will return in range 0...1.00274.
Groups:
Environment

Syntax

Syntax:
dateToNumber date
Parameters:
date: Array - array in date format
Return Value:
Number

Examples

Example 1:
_float = dateToNumber [2035,7,6,12,0]; // 0.510959
Example 2:
dateToNumber date; // returns float number for the current date
Example 3:
Calculate days from 1/1/1970:
fnc_daysFromEpoc = { private _year = param [0]; private _days = 0; for "_i" from 1970 to _year - 1 do { _days = _days + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false]; }; _days + linearConversion [0, 1, dateToNumber _this, 0, 365, false]; }; hint str (date call fnc_daysFromEpoc);

Additional Information

See also:
date dayTime time numberToDate

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note