Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Sekunden-Umwandlung (Zeichenketten)

Schreiben Sie ein Programm, das eine Anzahl Sekunden in die Form "h:mm:ss" (h = Stunden, mm = Minuten und ss = Sekunden) bringt.

Zum Beispiel wird die Zahl 3674 in die Zeichenkette "1:01:14" umgewandelt.

Zusatzaufgabe: Schreiben Sie auch die Umkehrung.

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

7 Lösung(en)

import java.util.Scanner;

/**
 * Form Sekunden in H:MM:SS um
 * @author Philipp Gressly (phi@gressly.ch)
 */

public class Sekunden {
  public static void main(String[] args) {
    new Sekunden() . top();}
  void top() {
      long sekunden = einlesenSekunden();
      String hms = umwandeln(sekunden);
      System.out.println("Ausgabe: " + hms); }
  
  String umwandeln(long sekunden) {
    long h = sekunden / 3600; // Ganzzahldivision
    // rest
    sekunden = sekunden - h * 3600;    
    long m = sekunden / 60;
    //rest
    sekunden = sekunden - m * 60;
    return h + ":" + zweistellig(m) + ":" + zweistellig(sekunden); }
  
  String zweistellig(long zeitEinheit) {
      if(zeitEinheit < 10)
          return "0" + zeitEinheit;
      return ""+zeitEinheit; // in String umwandeln
  }
  
  long einlesenSekunden() {
     Scanner sc = new Scanner(System.in);
     System.out.println("Bitte Sekunden eingeben: ");
     return sc.nextLong();}

} // end of class Sekunden
                
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
Sekunden-Umwandlung
https://www.programmieraufgaben.ch/aufgabe/sekunden-umwandlung/sxmwsks3
"""

# Programmieraufgabe:
#     Schreiben Sie ein Programm, das eine Anzahl Sekunden in die Form
#     "h:mm:ss" (h = Stunden, mm = Minuten und ss = Sekunden) bringt.
#     Zum Beispiel wird die Zahl 3674 in die Zeichenkette "1:01:14" umgewandelt.
#
# Autor, Erstellung:
#     Ulrich Berntien, 2018-08-06
#
# Sprache:
#     Python 3.6.6


import re


def hms_to_seconds(hms: str) -> int:
    """
    Konvertiert eine Angabe "h:mm:ss" in the Anzahl der Sekunden.
    :param hms: Zeit im Format "stunde:minuten:sekunden"
    :return: Zeit in Sekunden
    """
    match = re.match(r"(\d+):(\d+):(\d+)$", hms)
    if not match:
        raise RuntimeError("invalid hms format: " + hms)
    hours_part = int(match.group(1))
    minutes_part = int(match.group(2))
    seconds_part = int(match.group(3))
    if minutes_part > 59 or seconds_part > 59:
        raise RuntimeError("invalid hms format: " + hms)
    return seconds_part + ((hours_part * 60) + minutes_part) * 60


def seconds_to_hms(seconds: int) -> str:
    """
    Konvertiert Sekundenangabe in "h:mm:ss" Format.
    :param seconds: Anzahl der Sekunden.
    :return: Zeit in Stunden:Minuten:Sekunden Format.
    """
    if seconds < 0:
        sign = "-"
        seconds = -seconds
    else:
        sign = ""
    seconds_part = seconds % 60
    minutes = seconds // 60
    minutes_part = minutes % 60
    hours = minutes // 60
    return "%s%d:%02d:%02d" % (sign, hours, minutes_part, seconds_part)


# Tests der beiden Funktionen:
for seconds_test in (3674, 367400, -3674):
    print("seconds =", seconds_test, "-> hms =", seconds_to_hms(seconds_test))

for hms_test in ("1:01:14", "0:00:10", "0:01:00", "1:00:00", "100:00:00"):
    print("hms =", hms_test, "-> seconds =", hms_to_seconds(hms_test))
                

Lösung von: Ulrich Berntien ()

/**
 *  Programmieraufgabe: Sekunden-Umwandlung
 *  https://www.programmieraufgaben.ch/aufgabe/sekunden-umwandlung/sxmwsks3
 */


/**
 *  Konvertiert eine Angabe "h:mm:ss" in the Anzahl der Sekunden.
 *  @param hms Zeit im Format "stunde:minuten:sekunden"
 *  @return Zeit in Sekunden
 */
fun hms2seconds(hms: String): Int {
    val pattern = Regex("""(\d+):(\d+):(\d+)""")
    val match = pattern.matchEntire(hms)
            ?: throw IllegalArgumentException("invlid hms format")
    val (hour, minute, second) = match.groups
            .drop(1)
            .map { it -> it!!.value.toInt() }
    if (minute > 59 || second > 59)
        throw IllegalArgumentException("invlid hms format")
    return ((hour * 60) + minute) * 60 + second
}


/**
 * Konvertiert Anzahl Sekunden in h:mm:ss Format.
 * @param secondsArg Anzahl der Sekunden
 * @return Die Sekunden umgerechnet ins Format "h:mm_ss".
 */
fun seconds2hms(secondsArg: Int): String {
    val sign = if (secondsArg < 0) "-" else ""
    val seconds = if (secondsArg < 0) -secondsArg else secondsArg
    val secondsPart = seconds % 60
    val minutes = seconds / 60
    val minutesPart = minutes % 60
    val hoursPart = minutes / 60
    return "$sign$hoursPart:${"%02d".format(minutesPart)}:${"%02d".format(secondsPart)}"
}

/**
 * Test der beiden Funktionen.
 * @param argv wird ignoriert
 */
fun main(argv: Array<String>) {
    for (seconds in intArrayOf(3674, 367400, -3674))
        print("seconds = $seconds -> hms = ${seconds2hms(seconds)}\n")
    for (hms in arrayOf("1:01:14", "0:00:10", "0:01:00", "1:00:00", "100:00:00"))
        print("hms = $hms -> seconds = ${hms2seconds(hms)}\n")
}

                

Lösung von: Ulrich Berntien ()

package ch.santis.programmierenlernen.kapitel7;

public class Aufgabe_7_8 {
	
	public static void main(String[] args) {
		new Aufgabe_7_8().top();
	}
	
	// Sekunden-Umwandlung
	void top() {
		
		int sekundeneingabe = 3674;
		
		int sekunden = sekundenwert(sekundeneingabe);
		int minuten  = minutenwert(sekundeneingabe);
		int stunden  = stundenwert(sekundeneingabe);
		
		String stringausgabe = stringumwandlung(stunden, minuten, sekunden);
		System.out.println("Stringausgabe: " + stringausgabe);
		
		int sekundenausgabe = sekundenumwandlung(stringausgabe);
		System.out.println("Sekundenausgabe: " + sekundenausgabe);
		
	}
	
	public int sekundenumwandlung(String formatiert) {
		int stringlange = formatiert.length(); 
		
		int stunden  = Integer.parseInt(formatiert.substring(0,stringlange-6));
	    	stunden  = stunden * 3600;
		
		int minuten  = Integer.parseInt(formatiert.substring(stringlange-5,stringlange-3));
		    minuten  = minuten * 60;
		
		int sekunden = Integer.parseInt(formatiert.substring(stringlange-2,stringlange));
		
		return stunden + minuten + sekunden;
	}
	
	public String stringumwandlung(int stunden, int minuten, int sekunden) {
		String formatiert = "";
		
		String stundenstring = "";
		stundenstring = "" + stunden;
		
		String minutenstring = "";
		if(minuten < 10) { minutenstring = "0" + minuten; }
		else { minutenstring = "" + minuten; }
		
		String sekundenstring = "";
		if(sekunden < 10) { sekundenstring = "0" + sekunden; }
		else { sekundenstring = "" + sekunden; }
		
		formatiert = stundenstring + ":" + minutenstring + ":" + sekundenstring;
		return formatiert;
	}
	
	public int stundenwert(int sekundeneingabe) {
		return (sekundeneingabe / 60) / 60;
	}
	
	public int minutenwert(int sekundeneingabe) {
		return (sekundeneingabe / 60) % 60;
	}
	
	public int sekundenwert(int sekundeneingabe){
		return sekundeneingabe % 60;
	}
	
}
                

Lösung von: Jan Roth (Santis Training AG)

function convertSeconds(s) {
  function leadZero(num) {
    if (num < 10) return '0' + num;
    return num;
  }
  let h = Math.floor(s / 3600); s = s % 3600;
  let m = Math.floor(s / 60); s = s % 60;
  return (h + ':' + leadZero(m) + ':' + leadZero(s));
}

function convertTimeFormat(str) {
  str = str.split(':');
  return parseInt(str[0]) * 3600 + parseInt(str[1]) * 60 + parseInt(str[2]);
}

console.log(convertSeconds(3674));
console.log(convertTimeFormat('1:01:14'));
console.log(convertTimeFormat(convertSeconds(3674)));
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

// NET 6.x | C# 10.x | VS-2022

// Aufgabe 1.1 (Sekunden: int -> Uhrzeit: string)
string SecondsToTime(int s) => $"{s / 3600:#0}:{s % 3600 / 60:00}:{s % 3600 % 60:00}";
Console.WriteLine(SecondsToTime(3674));

// Aufgabe 1.2 (Sekunden: int -> Uhrzeit: string)
string SecondsToTime2(int s) => new DateTime(1, 1, 1, 0, 0, 0).AddSeconds(s).ToLongTimeString();
Console.WriteLine(SecondsToTime2(3674));

// Aufgabe 2.1 (Uhrzeit: string -> Sekunden: int)
int TimeAsStringToSeconds(string t) {
    _ = TimeOnly.TryParse(t, out var time);
    return time.Hour * 3600 + time.Minute * 60 + time.Second;
}
Console.WriteLine(TimeAsStringToSeconds("1:01:14"));

// Aufgabe 2.2 (Uhrzeit: time -> Sekunden: int)
int TimeToSeconds(TimeOnly t) => t.Hour * 3600 + t.Minute * 60 + t.Second;
Console.WriteLine(TimeToSeconds(new TimeOnly(1,1,14)));
                

Lösung von: Jens Kelm (@JKooP)

// C++ 14 | VS-2022

#include <tuple>
#include <sstream>

void seconds_to_time(int s) {
    printf("%i:%02i:%02i\n", s / 3600, s % 3600 / 60, s % 3600 % 60);
}

void time_to_seconds(const std::string& t) {
    std::string h, m, s;
    std::stringstream ss{ t };
    getline(ss, h, ':');
    getline(ss, m, ':');
    getline(ss, s, ':');
    std::cout << stoi(h) * 3600 + stoi(m) * 60 + stoi(s) << std::endl;
}

int main() {
    time_to_seconds("1:01:14");
    seconds_to_time(3674);
}
                

Lösung von: Jens Kelm (@JKooP)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 1
Schwierigkeit: k.A.
Webcode: sxmw-sks3
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen