Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi,

ich habe folgendes Problem, dass ich in Powershell keine richtigen Eingaben und Ausgaben zu meinen Datensätzen erhalte.

Lt. Aufgabe: "Eingabe von zwei Namen + Geburtsdatum - Ausgabe des Namen vom früheren Geburtstag.

Dieses möchte ich jedoch um eine Abfrage des Kennworts sowie dem Wohnort ergänzen.

In Powershell ISE habe ich soweit 

Read-Host -Prompt "Bitte geben Sie Ihren Namen ein!"
Read-Host "Bitte geben Sie ihr Kennwort ein!" -AsSecureString
 

Das klappt soweit, doch wie ergänze ich, die Angaben um die zweite Person, welche mit Geburstagsdatum verglichen wird, sodass die erste Rausfällt? 

Ich wollte das ganze mit IF verbinden (Wenn person X älter ist, als Y, dann gebe X aus).

Habt ihr einen Tipp? 

 

Da ich selbst noch kein Datetime in Powershell benutzt habe, habe ich mal ein kleines Programm geschrieben welches Name + Datum einliest und den Unterschied zwischen dem Alter angibt.

$benutzer1 = @{
    "Name" = "";
    "Datum" = [datetime];
}
$benutzer1.Name = Read-Host -Prompt "Bitte geben Sie Ihren Namen ein"

do {
    $date1 = Read-Host -Prompt "Bitte geben Sie Ihr Geburtsdatum ein"
    $date1 = $date1 -as [datetime]

} while ($date1 -isnot [datetime])
$benutzer1.Datum = $date1

$benutzer2 = @{
    "Name" = "";
    "Datum" = [datetime];
}
$benutzer2.Name = Read-Host -Prompt "Bitte geben Sie Ihren Namen ein"

do {
    $date2 = Read-Host -Prompt "Bitte geben Sie Ihr Geburtsdatum ein"
    $date2 = $date2 -as [datetime]

} while ($date2 -isnot [datetime])
$benutzer2.Datum = $date2

$span = [datetime]::Now - $benutzer1.Datum
$age1 = New-Object DateTime -ArgumentList $span.Ticks
Write-Host $benutzer1.Name "ist $($age1.Year -1) Jahre, $($age1.Month -1) Monate und $($age1.Day) Tage alt"

$span = [datetime]::Now - $benutzer2.Datum
$age2 = New-Object DateTime -ArgumentList $span.Ticks
Write-Host $benutzer2.Name "ist $($age2.Year -1) Jahre, $($age2.Month -1) Monate und $($age2.Day) Tage alt"

$vergleich = $benutzer1.Datum, $benutzer2.Datum | Measure-Object -Maximum -Minimum
$span = $vergleich.Maximum - $vergleich.Minimum
$difference =  New-Object DateTime -ArgumentList $span.Ticks

if ($benutzer1.Datum -lt $benutzer2.Datum) {
    $benutzer1.Name + " ist $($difference.Year - 1) Jahre, $($difference.Month -1) Monate und $($difference.Day -1) Tage älter als " + $benutzer2.Name
} else {
    $benutzer2.Name + " ist $($difference.Year - 1) Jahre, $($difference.Month -1) Monate und $($difference.Day -1) Tage älter als " + $benutzer1.Name
}

 

Oder etwas kürzer

function alter($benutzer) {
    $age = New-Object DateTime -ArgumentList (New-TimeSpan -End (Get-Date) -Start $benutzer.geb).Ticks
    Write-Host $benutzer.Name "ist $($age.Year -1) Jahre, $($age.Month -1) Monate und $($age.Day) Tage alt"
}
function eingabe() {
    $benutzer = new-object Benutzer
    $benutzer.Name = Read-Host -Prompt "Bitte geben Sie Ihren Namen ein"
    do {
        $benutzer.geb  = (Read-Host -Prompt "Bitte geben Sie Ihr Geburtsdatum ein") -as [datetime]
    } while ($benutzer.geb -isnot [datetime]) 
    return $benutzer
}

$benutzer1 = eingabe($null)
$benutzer2 = eingabe($null)

alter($benutzer1)
alter($benutzer2)

$vergleich = $benutzer1.geb, $benutzer2.geb | Measure-Object -Maximum -Minimum
$difference =  New-Object DateTime -ArgumentList ($vergleich.Maximum - $vergleich.Minimum).Ticks

if ($benutzer1.geb -lt $benutzer2.geb) {
    $aelter = $benutzer1
    $juenger = $benutzer2
} else {
    $aelter = $benutzer2
    $juenger = $benutzer1
}

Write-Host $aelter.Name " ist $($difference.Year - 1) Jahre, $($difference.Month -1) Monate und $($difference.Day -1) Tage älter als " $juenger.Name

 

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.