icinga-powershell-framework/lib/core/tools/Compare-IcingaUnixTimeWithDateTime.psm1
2020-10-29 15:33:55 +01:00

27 lines
1.1 KiB
PowerShell

<#
.SYNOPSIS
Compare-IcingaUnixTimeWithDateTime compares a DateTime-Object with the current DateTime and returns the offset between these values as Integer
.DESCRIPTION
Compare-IcingaUnixTimeWithDateTime compares a DateTime-Object with the current DateTime and returns the offset between these values as Integer
.PARAMETER DateTime
DateTime object you want to compare with the Universal Time
.INPUTS
System.DateTime
.OUTPUTS
System.Int64
#>
function Compare-IcingaUnixTimeWithDateTime() {
param (
[datetime]$DateTime
);
# This is when the computer starts counting time
$UnixEpochStart = (New-Object DateTime 1970, 1, 1, 0, 0, 0, ([DateTimeKind]::Utc));
# We convert the creation and current time to seconds
$CreationTime = [long][System.Math]::Floor((($DateTime.ToUniversalTime() - $UnixEpochStart).Ticks / [timespan]::TicksPerSecond));
$CurrentTime = Get-IcingaUnixTime;
# To find out, from the snapshot creation time to the current time, how many seconds are,
# you have to subtract from the (Current Time in s) the (Creation Time in s)
return ($CurrentTime - $CreationTime);
}