Nautical bell: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: changed/added comments and whitespace, changed indentations.)
No edit summary
Line 755: Line 755:
end nautical;
end nautical;
</lang>
</lang>

=={{header|PowerShell}}==
<lang PowerShell>
function Get-Bell
{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true,
Position=0)]
[ValidateRange(1,12)]
[int]
$Hour,

[Parameter(Mandatory=$true,
Position=1)]
[ValidateSet(0,30)]
[int]
$Minute
)

$bells = @{
OneBell = 1
TwoBells = 2
ThreeBells = 2, 1
FourBells = 2, 2
FiveBells = 2, 2, 1
SixBells = 2, 2, 2
SevenBells = 2, 2, 2, 1
EightBells = 2, 2, 2, 2
}

filter Invoke-Bell
{
if ($_ -eq 1)
{
[System.Media.SystemSounds]::Asterisk.Play()
Write-Host -NoNewline "♪"
}
else
{
[System.Media.SystemSounds]::Exclamation.Play()
Write-Host -NoNewline "♪♪ "
}

Start-Sleep -Milliseconds 500
}


$time = New-TimeSpan -Hours $Hour -Minutes $Minute

switch ($time.Hours)
{
1 {if ($time.Minutes -eq 0) {$bells.TwoBells | Invoke-Bell} else {$bells.ThreeBells | Invoke-Bell}; break}
2 {if ($time.Minutes -eq 0) {$bells.FourBells | Invoke-Bell} else {$bells.FiveBells | Invoke-Bell}; break}
3 {if ($time.Minutes -eq 0) {$bells.SixBells | Invoke-Bell} else {$bells.SevenBells | Invoke-Bell}; break}
4 {if ($time.Minutes -eq 0) {$bells.EightBells | Invoke-Bell} else {$bells.OneBell | Invoke-Bell}; break}
5 {if ($time.Minutes -eq 0) {$bells.TwoBells | Invoke-Bell} else {$bells.ThreeBells | Invoke-Bell}; break}
6 {if ($time.Minutes -eq 0) {$bells.FourBells | Invoke-Bell} else {$bells.FiveBells | Invoke-Bell}; break}
7 {if ($time.Minutes -eq 0) {$bells.SixBells | Invoke-Bell} else {$bells.SevenBells | Invoke-Bell}; break}
8 {if ($time.Minutes -eq 0) {$bells.EightBells | Invoke-Bell} else {$bells.OneBell | Invoke-Bell}; break}
9 {if ($time.Minutes -eq 0) {$bells.TwoBells | Invoke-Bell} else {$bells.ThreeBells | Invoke-Bell}; break}
10 {if ($time.Minutes -eq 0) {$bells.FourBells | Invoke-Bell} else {$bells.FiveBells | Invoke-Bell}; break}
11 {if ($time.Minutes -eq 0) {$bells.SixBells | Invoke-Bell} else {$bells.SevenBells | Invoke-Bell}; break}
12 {if ($time.Minutes -eq 0) {$bells.EightBells | Invoke-Bell} else {$bells.OneBell | Invoke-Bell}}
}

Write-Host
}

Write-Host "Local UTC Bells`n----- --- -----`n"

1..12 | ForEach-Object {

$date = Get-Date -Hour $_ -Minute 0
Write-Host -NoNewline ("{0}:{1} {2}:{3} " -f $date.Hour.ToString("00"),
$date.Minute.ToString("00"),
$date.ToUniversalTime().Hour.ToString("00"),
$date.ToUniversalTime().Minute.ToString("00"))
Get-Bell -Hour $_ -Minute 0

$date = $date.AddMinutes(30)
Write-Host -NoNewline ("{0}:{1} {2}:{3} " -f $date.Hour.ToString("00"),
$date.Minute.ToString("00"),
$date.ToUniversalTime().Hour.ToString("00"),
$date.ToUniversalTime().Minute.ToString("00"))
Get-Bell -Hour $_ -Minute 30
}
</lang>
{{Out}}
<pre>
Local UTC Bells
----- --- -----

01:00 08:00 ♪♪
01:30 08:30 ♪♪ ♪
02:00 09:00 ♪♪ ♪♪
02:30 09:30 ♪♪ ♪♪ ♪
03:00 10:00 ♪♪ ♪♪ ♪♪
03:30 10:30 ♪♪ ♪♪ ♪♪ ♪
04:00 11:00 ♪♪ ♪♪ ♪♪ ♪♪
04:30 11:30 ♪
05:00 12:00 ♪♪
05:30 12:30 ♪♪ ♪
06:00 13:00 ♪♪ ♪♪
06:30 13:30 ♪♪ ♪♪ ♪
07:00 14:00 ♪♪ ♪♪ ♪♪
07:30 14:30 ♪♪ ♪♪ ♪♪ ♪
08:00 15:00 ♪♪ ♪♪ ♪♪ ♪♪
08:30 15:30 ♪
09:00 16:00 ♪♪
09:30 16:30 ♪♪ ♪
10:00 17:00 ♪♪ ♪♪
10:30 17:30 ♪♪ ♪♪ ♪
11:00 18:00 ♪♪ ♪♪ ♪♪
11:30 18:30 ♪♪ ♪♪ ♪♪ ♪
12:00 19:00 ♪♪ ♪♪ ♪♪ ♪♪
12:30 19:30 ♪
</pre>


=={{header|Python}}==
=={{header|Python}}==