Announcement

Collapse
No announcement yet.

Countdown

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Countdown

    Hallo zusammen,

    ich möchte wieder einmal ein Programm programmieren. Nun weiss ich aber überhaupt nicht, wie ich mit dieserm beginnen soll.

    In meinem Programm geht es um einen Countdown mit Jahren, Tagen, Stunden und Sekunden. Ich möchte, dass ich ein Datum und eine Uhrzeit auswählen kann, und es mir dann die verbleibende Zeit bis zu diesem Zeitpunkt anzeigt. Natürlich möchte ich auch den Computer dazwischen ausschalten kann.

    Schon jetzt vielen Dank für eure Antworten.

    Marcel

  • #2
    Hallo,
    1. speichere das ausgewählte Datum/Uhrzeit = DateTime in eine Datei (zB per Anwendungseinstellung)
    2. verwende einen Timer mit Intervall 1 Sekunde und subtrahiere bei jedem Tick-Ereignis 1 Sekunde von DateTime (AddSecond(-1))
    3. zeige das so errechnete DateTime an


    Damit das Programm auch funktioniert wenn der Computer zwischendurch ausgeschalten wird
    1. füg dein Programm zB zu Autostart hinzu (oder über Geplante Task, oder...)
    2. somit startet das Programm wenn du dich einloggst.
    3. im FormClosing-Ereignis der Anwendung speichere den aktuellen Wert deines Countdowns (das aktuelle DateTime), damit beim nächsten Start von diesem weitergerechnet werden kann


    Das wär mal grob so wie ich es mach würde (wenn ich es überhaupt machen würde ).

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Allerdings solltest du bedenken, dass die Systemuhr verstellt werden kann.
      Daher würd ich mir nen Zeitgeber im Internet suchen und mit dem rechnen.

      Speichern würd ich nur einmal beim setzen des Datums. Den Rest kannst du dir jederzeit wieder errechnen.

      Ein möglicher WebService dafür wäre
      http://www.earthtools.org/webservices.htm

      Grüßle
      Stefan
      Zuletzt editiert von Stefan Wimmer; 05.12.2008, 11:23.
      Mitarbeiterführung ist:
      Den Mitarbeiter so schnell über den Tisch zu ziehen, dass er die Reibungshitze als Nestwärme empfindet!

      Comment


      • #4
        @Stefan: Ist sicher die bessere Lösung. Aber dieses überfordert "unseren Beginner" - zumindest jetzt noch

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Originally posted by gfoidl View Post
          @Stefan: Ist sicher die bessere Lösung. Aber dieses überfordert "unseren Beginner" - zumindest jetzt noch

          mfG Gü
          Oppala, stimmt jetz wo du's sagst. Wer lesen kann is klar im Vorteil.
          Mitarbeiterführung ist:
          Den Mitarbeiter so schnell über den Tisch zu ziehen, dass er die Reibungshitze als Nestwärme empfindet!

          Comment


          • #6
            Erstmal vielen Dank für eure Antworten.

            Doch wie kann ich ein Datum auswählen?
            Wie kann ich den Unterschied zwischen der Zeit beim beenden des Programms und beim nächsten Starten des Programms ausrechnen?

            Lg Marcel

            Comment


            • #7
              Mal ganz was anderes:

              Dir fehlen die Grundlagen der Programmierung und speziell jene von .net bzw. C#. Diese Grundlagen musst du dir selber beibringen. Ich verweise wiederum auf das OpenBook. Lies das (endlich) mal durch und deine Fragen kannst du dann zum Großteil selbst beantworten.

              Außerdem musst du lernen Lösungswege selbst zu finden. Ein Suchforgang bei zB Google mit "C# datum" kann schon einiges bringen.
              Oder ein Blick in die MSDN und die dortige Suchfuntion.
              Oder du bist der englischen Sprache mächtig und probierst mal das naheliegenste einzutippen und InstelliSense zeigt dann eh an ob es das gibt oder nicht (es sei denn die Verweise sind nicht eingebunden oder der Namespace nicht deklariert). In diesem Fall zB Time -> gibts nicht -> dann eben Date -> es kommt DateTime, usw.

              Wie erwähnt diese triviale Frage kannst du dir selbst beantworten.

              mfG Gü
              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

              Comment


              • #8
                Hallo Marcel,

                Originally posted by Marcel@Beginning View Post
                Doch wie kann ich ein Datum auswählen?
                WinForms-Anwendung: DateTimePicker
                Konsole: Console.ReadLine und DateTime.TryParse

                Wie kann ich den Unterschied zwischen der Zeit beim beenden des Programms und beim nächsten Starten des Programms ausrechnen?
                Aktuelle Zeit: DateTime.Now; diese muss natürlich zwischengespeichert und später wieder eingelesen werden (siehe Gü's Hinweise).

                Du kannst zwei DateTime-Werte "normal" subtrahieren; das Ergebnis ist ein TimeSpan-Typ.

                Empfehlung 1: Arbeite Dich konsequent in C# und NET ein, z.B. anhand eines Buches, speziell openbook visual C#.

                Empfehlung 2: Blättere intensiv anhand beliebiger Stichworte in der SDK-Doku/MSDN und lies, welche Eigenschaften, Methoden und Ereignisse die einzelnen Klassen haben. Ich empfehle, mit der Offline-Version der Doku zu arbeiten.

                Jürgen

                PS. Während ich das geschrieben habe, war Gü schon etwas grundsätzlicher und deutlicher. Ich schließe mich ihm an.

                Comment


                • #9
                  Ok...denke ich werde mich mal an mein Buch setzten.

                  Trotzdem vielen Dank für eure Hilfe

                  Comment


                  • #10
                    Ok...denke ich werde mich mal an mein Buch setzten.
                    Das hast du schon oft geschrieben, aber noch nie richtig in die Tat umgesetzt. Wenn du programmiren willst dann wird es höchste Zeit mal was darüber liest.

                    mfG Gü
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #11
                      Folgende Literatur hat mir in den ersten 5 Jahren geholfen (in der Reihenfolge)

                      1. openbook (wie bereits von gü empfohlen)
                      2. Microsoft .Net Framework-Programmierung in C#
                      3. Programming Microsoft Windows With C#
                      4. Microsoft .Net Framework-Programmierung in C#
                      6. .Net Framework 2.0 Application Development Foundation (Training Kit MCTS)
                      7. Windows Forms Programmierung mit Visual C# 2005
                      8. Verteilte Systeme mit .NET Remoting

                      Wenn du die Literatur durch gepaukt hast, glaub ich dass du die gestellte Frage selbst mit einem Schmunzeln lesen würdest

                      Ein schönes WE an alle

                      Grüßle
                      Stefan
                      Mitarbeiterführung ist:
                      Den Mitarbeiter so schnell über den Tisch zu ziehen, dass er die Reibungshitze als Nestwärme empfindet!

                      Comment


                      • #12
                        Upps...tut mir leid

                        Comment

                        Working...
                        X