dateToNumber: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "<code>([^<]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^<]*) *<\/code>" to "<code>$1$2$3</code>")  | 
				Lou Montana (talk | contribs)  m (Some wiki formatting)  | 
				||
| (8 intermediate revisions by the same user not shown) | |||
| Line 15: | Line 15: | ||
|gr1= Environment  | |gr1= Environment  | ||
|descr= Convert a date to a float number, based on Jan 1st 00:00:00   | |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:<  | 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:<  | 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  | 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.  | ||
|s1= [[dateToNumber]] date  | |s1= [[dateToNumber]] date  | ||
| Line 28: | Line 28: | ||
|r1= [[Number]]  | |r1= [[Number]]  | ||
|x1= <  | |x1= <sqf>_float = dateToNumber [2035,7,6,12,0]; // 0.510959</sqf>  | ||
|x2= <  | |x2= <sqf>dateToNumber date; // returns float number for the current date</sqf>  | ||
|x3= Calculate days from 1/1/1970:  | |x3= Calculate days from 1/1/1970:  | ||
<  | <sqf>  | ||
fnc_daysFromEpoc =    | |||
{  | {  | ||
	private _year = param [0];  | 	private _year = param [0];  | ||
| Line 39: | Line 40: | ||
	for "_i" from 1970 to _year - 1 do    | 	for "_i" from 1970 to _year - 1 do    | ||
	{  | 	{  | ||
		_days = _days + round   | 		_days = _days + round linearConversion [0, 1, dateToNumber [_i, 12, 31, 23, 59], 0, 365, false];  | ||
	};  | 	};  | ||
	_days +   | 	_days + linearConversion [0, 1, dateToNumber _this, 0, 365, false];  | ||
};  | };  | ||
hint str (date call fnc_daysFromEpoc);</  | hint str (date call fnc_daysFromEpoc);  | ||
</sqf>  | |||
|seealso= [[date]] [[dayTime]] [[time]] [[numberToDate]]  | |seealso= [[date]] [[dayTime]] [[time]] [[numberToDate]]  | ||
}}  | }}  | ||
Latest revision as of 13:12, 13 May 2022
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: In a leap year there are 366 days, so the range will increase by 1 day: 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:
 - Example 2:
 - 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