Private/ConvertTo-BridgeClosedDuration.ps1
function ConvertTo-BridgeClosedDuration { [CmdletBinding()] <# .SYNOPSIS Υπολογίζει τη διάρκεια κλεισίματος γέφυρας. .DESCRIPTION Η ConvertTo-BridgeClosedDuration υπολογίζει πόσο χρονικό διάστημα παραμένει κλειστή η γέφυρα με βάση την ώρα ανοίγματος και κλεισίματος. .PARAMETER CloseTimestamp Η χρονική στιγμή κλεισίματος της γέφυρας. .PARAMETER OpenTimestamp Η χρονική στιγμή ανοίγματος της γέφυρας. .OUTPUTS [Timespan] - Η διάρκεια κλεισίματος. .EXAMPLE ConvertTo-BridgeClosedDuration -CloseTimestamp (Get-Date) -OpenTimestamp (Get-Date) .NOTES Απαιτεί έγκυρες χρονικές σφραγίδες. #> [OutputType([string])] param ( [Parameter(Mandatory)][timespan]$Duration ) $components = @() if ($Duration -lt [timespan]::Zero) { $exception = [System.Exception]::new('Η διάρκεια δεν μπορεί να είναι αρνητική.') $errorRecord = [System.Management.Automation.ErrorRecord]::new( $exception, 'NegativeDurationNotAllowed', [System.Management.Automation.ErrorCategory]::InvalidArgument, $Duration ) $PSCmdlet.ThrowTerminatingError($errorRecord) } # Αν η διάρκεια περιλαμβάνει ημέρες if ($Duration.Days -gt 0) { $components += "$($Duration.Days) $(if ($Duration.Days -eq 1) { 'ημέρα' } else { 'ημέρες' })" } # Αν η διάρκεια περιλαμβάνει ώρες if ($Duration.Hours -gt 0) { $components += "$($Duration.Hours) $(if ($Duration.Hours -eq 1) { 'ώρα' } else { 'ώρες' })" } # Αν η διάρκεια περιλαμβάνει λεπτά if ($Duration.Minutes -gt 0) { $components += "$($Duration.Minutes) $(if ($Duration.Minutes -eq 1) { 'λεπτό' } else { 'λεπτά' })" } # Επιστρέφουμε την ένωση των συνιστωσών return ($components -join ', ') } |