konvertieren Sie eine 4-stellige Militär-Zeit in der standard-12-Stunden-Zeit-format

, Was ich versuche zu tun:

Ich versuche zu konvertieren, eine 4-stellige Militär-Zeit in der standard-12-Stunden-Zeit-format, die mit einem Doppelpunkt und einem zusätzlichen PM oder BIN, ohne die Verwendung von Import nichts, bevor mein code (ich mache eine Methode, die erfordert nichts anderes als java-101-Techniken).

Meine situation:

Habe ich milTime, die ich manuell ändern, um für jetzt, jedes mal, wenn ich es(wie erklärt, oben, derzeit 1100, -), bis ich konvertieren es in eine Methode und legt die Zuordnung, in dem es in milTime, und wieder milTimeString für das main-Programm zu drucken. Ich bin derzeit mit BlueJ als IDE (ich bin mir nicht sicher, ob das ist die beste zu verwenden?)

Beispiel von input-und output -:

Wenn 0056 gegeben wurden, ich würde zurückkehren müssen, 12:56am.
Wenn 1125 gegeben wurden, würde ich zurück 11:25am.
Wenn 2359 gegeben wurden, ich würde zurückkehren müssen 11:59 Uhr.

Probleme, ich brauche Hilfe mit

  1. Wenn ich ausführen, mein am /pm boolean versagt irgendwo und es immer Ausgängen Uhr, egal ob ich Eingang 11:24, oder 23:24.
  2. Es ist wohl offensichtlich, dass ich arbeite zu hart, um die Ausgabe zu erzeugen, aber ich weiß nicht einen einfacheren Weg (Andere als Import etwas zu tun, es für mir, die ich nicht tun wollen).

Ich demütig Unterwerfen, um jede Kritik an meinem aufgeblähten aktuellen code, und alle Korrekturen in meine weitschweifige Anfrage. Ich habe gesucht, um für Alternative Antworten, und alles importieren oder wissen über mich. Vielen Dank für Ihre Zeit so weit, und danke im Voraus jeder.

public class timeTest
{
    public static void main(String []args)
    {   
        /*Declare my variables*/
        int milTime = 2400;
        String timeString = "";
        boolean pm;

        /*determine AM or PM and convert over 1200 into a clock's digits */
        if (milTime >1259)
        {
            if (milTime <1200)
            {
                pm = false;
            }
            else
            {
                pm = true;
            }
            milTime = (milTime - 1200);
        }
        else
        {
        }

        /*figure out my digits*/
        int fourthDigit = milTime%10;
        milTime = milTime/10;
        int thirdDigit = milTime%10;
        milTime = milTime/10;
        int secondDigit = milTime%10;
        milTime = milTime/10;
        int firstDigit = milTime%10;

        /*build each side of the colon*/
        String hoursString = thirdDigit + "" + fourthDigit;
        String minutesString = firstDigit + "" + secondDigit;

        /*determine if the first digit is zero and if so, omit it*/
        if (firstDigit == 0 )
        {
            minutesString = "" + secondDigit;
        }
        else
        {
        }
        if (secondDigit == 0)
        {
            minutesString = "12";
        }
        else
        {
        }

        /*build the total string and return the result with AM or PM based on conditional boolean.*/
        if (pm = true)
        {
            timeString = (minutesString + ':' + hoursString + "pm");
        }
        else
        {
        }

        if (pm = false)
        {
            timeString = (minutesString + ':' + hoursString + "am");
        }
        else
        {
        }
        System.out.println(timeString);

    }
}
Sie könnte verwenden Sie Joda Zeit-Formatierer für die tun, die leicht, wenn Sie nicht wollen, dass es code: stackoverflow.com/questions/19075188/...

InformationsquelleAutor Crawsome | 2013-12-03

Schreibe einen Kommentar