C# datetime, ich möchte die aktuelle zeit nur STUNDEN und MINUTEN ausgeben?

4 Antworten

Aus dem Kopf:

private void Test()
    {
        if (DateTime.Now.Hour == 8 && DateTime.Now.Minute == 12)
        {
        }
    }

Wie fragst du das ab? Mit einem Timer? Du solltest öfter abfragen als einmal pro Minute, zur Sicherheit, dass du immer diese Kombination triffst. Wenn du seltener abfragst, also alle 2 Minuten, um 8:11 und 8:13 Uhr, kann es passieren, dass er das ignoriert.

Woher ich das weiß:Hobby

Bartosz11  20.05.2021, 14:24

Und pass mit der Nacht auf, in der auf Sommerzeit umgestellt wird. Dann kommt 2:30 Uhr zweimal vor 😉

1
lLoveChickens 
Fragesteller
 20.05.2021, 18:42
@Bartosz11

Haha, ja danke. War hilfreich. Es geht um VIdeokonferenzen, das Programm soll automatisch in die VK sich einloggen.

0
lLoveChickens 
Fragesteller
 20.05.2021, 19:11
@Bartosz11

Es funktioniert nicht.

private void timer1_Tick(object sender, EventArgs e)

    {

      if (radioButton1.Checked)

      {

        if (DateTime.Now.Hour == 8 && DateTime.Now.Minute == 40)
.....

So steht das bei mir. Interval = 60000 (60 Sek) und er führt gar nichts aus.

0

Mit .ToString("t") bzw. .ToString("HH:mm") auf deiner DateTime-Instanz bekommst du die Uhrzeit ausgegeben (abhängig von den aktuellen Kultureinstellungen des Betriebssystems).

Mit (DateTime.Now() - DateTime.Date()).TotalMinutes die Minuten seit Mitternacht.

@IloveChickens ich mache eine neue Antwort, da ich im Kommentarbereich keinen Code posten kann.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void Timer1_Tick(object sender, EventArgs e)
        {
            if (CheckBox1.Checked)
            {
                if (System.DateTime.Now.Hour == 13 && System.DateTime.Now.Minute == 02)
                {
                    MessageBox.Show("Hallo");
                }
            }
        }

        private void Button_Timerstart_Click(object sender, EventArgs e)
        {
            Timer1.Start();
        }

        private void Button_Timerstop_Click(object sender, EventArgs e)
        {
            Timer1.Stop();
        }
    }
}

Bild zum Beitrag

 - (Computer, programmieren)

lLoveChickens 
Fragesteller
 21.05.2021, 13:16

Ich habe das Problem inzwischen behoben, aber danke :)

0
lLoveChickens 
Fragesteller
 21.05.2021, 13:17

Vielleicht kannst du mir aber bei meiner neuen Frage helfen.

0