V C# existuje několik datových typů pro práci s datem a časem:
- **DateTime:** Reprezentuje datum a čas s přesností na milisekundy.
- **TimeSpan:** Reprezentuje časový interval.
- **DateTimeOffset:** Reprezentuje datum a čas s ohledem na časové pásmo.
### **Vlastnosti a metody**
Datové typy pro práci s časem nabízí různé vlastnosti a metody:
- **DateTime.Now:** Vrátí aktuální datum a čas.
- **DateTime.AddDays(int):** Přidá zadaný počet dnů k datu a času.
- **TimeSpan.Subtract(TimeSpan):** Odečte zadaný časový interval od jiného.
- **DateTimeOffset.ToLocalTime():** Převádí datum a čas na místní časové pásmo.
### **Čekací smyčka**
Čekací smyčka se používá k opakování kódu po zadaný časový interval.
**Příklad:**
```csharp
var startTime = DateTime.Now;
while (DateTime.Now - startTime < TimeSpan.FromSeconds(5))
{
// kód, který se bude opakovat po dobu 5 sekund
}
```
[https://lh7-us.googleusercontent.com/A8G69vIPJ8WhvMxibp4fbuZrnGAP6WF3LL2FoBkWL6mgk0Bx6iHts-_K-3UCcXusJy-4-O4fwbLnJ-7we34KrvVCb9O6Dhiti-RvTMO5-A3C26cIljkIzs3cqte4mqrN81p224Bi6--CegLMVOHXgbw](https://lh7-us.googleusercontent.com/A8G69vIPJ8WhvMxibp4fbuZrnGAP6WF3LL2FoBkWL6mgk0Bx6iHts-_K-3UCcXusJy-4-O4fwbLnJ-7we34KrvVCb9O6Dhiti-RvTMO5-A3C26cIljkIzs3cqte4mqrN81p224Bi6--CegLMVOHXgbw)
```csharp
int pocet = 0;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (!timer1.Enabled)
{
timer1.Enabled = true;
button1.Text = "Stop";
}
else
{
timer1.Enabled = false;
button1.Text = "Start";
}
}
private void timer1_Tick(object sender, EventArgs e)
{
pocet++;
label1.Text = "Počet je: " + pocet / 10 + "." + pocet % 10;
}
```
**Tipy:**
- Používejte vhodné datové typy pro práci s datem a časem.
- Pečlivě testujte operace s datem a časem.
- Čekací smyčky používejte s rozvahou, aby se program nezacyklil.
- Existují i jiné metody pro práci s časem, například asynchronní operace a časovače.
Dobré pochopení práce s časem vám pomůže psát programy, které správně pracují s datem a časem a reagují na události v daný čas.