Feedback

Setzen der Systemzeit

Sprache: C#

So stellt man die Systemzeit, das Datum und die Zeit werden in einem DateTime Objekt übergeben.
using System;
using System.Runtime.InteropServices;

public class ZeitSetzen
{
 struct str_Zeit
  {
    public short Jahr;
    public short Monat;
    public short TagInDerWoche;
    public short Tag;
    public short Stunde;
    public short Minute;
    public short Sekunde;
    public short Millisekunde;
  }
   
  [DllImport("kernel32.dll", SetLastError=true)]
  static extern bool SetSystemTime(ref str_Zeit neueZeit);

  public  ZeitSetzen()
  {      
  }
  
  public void SetzeSystemzeit(DateTime NeueZeit)
  {
    str_Zeit Zeit = new str_Zeit();
    Zeit.Jahr = (short)NeueZeit.Year;
    Zeit.Monat = (short)NeueZeit.Month;
    Zeit.TagInDerWoche = (short)NeueZeit.DayOfWeek;
    Zeit.Tag = (short)NeueZeit.Day;
    Zeit.Stunde = (short)NeueZeit.Hour;
    Zeit.Minute = (short)NeueZeit.Minute;
    Zeit.Sekunde =(short)NeueZeit.Second;
    Zeit.Millisekunde = (short)NeueZeit.Millisecond;

    SetSystemTime(ref Zeit);
  }    
} 
using System;
using System.Runtime.InteropServices;

public class ZeitSetzen
{
 struct str_Zeit
  {
    public short Jahr;
    public short Monat;
    public short TagInDerWoche;
    public short Tag;
    public short Stunde;
    public short Minute;
    public short Sekunde;
    public short Millisekunde;
  }
   
  [DllImport("kernel32.dll", SetLastError=true)]
  static extern bool SetSystemTime(ref str_Zeit neueZeit);

  public  ZeitSetzen()
  {      
  }
  
  public void SetzeSystemzeit(DateTime NeueZeit)
  {
    str_Zeit Zeit = new str_Zeit();
    Zeit.Jahr = (short)NeueZeit.Year;
    Zeit.Monat = (short)NeueZeit.Month;
    Zeit.TagInDerWoche = (short)NeueZeit.DayOfWeek;
    Zeit.Tag = (short)NeueZeit.Day;
    Zeit.Stunde = (short)NeueZeit.Hour;
    Zeit.Minute = (short)NeueZeit.Minute;
    Zeit.Sekunde =(short)NeueZeit.Second;
    Zeit.Millisekunde = (short)NeueZeit.Millisecond;

    SetSystemTime(ref Zeit);
  }    
} 

1 Kommentar

  1. Da die Methode [b]SetSystemTime[/b] eine UTC-Datumsangabe erwartet würde ich zu Beginn der Methode [b]SetzeSystemzeit[/b] noch folgendes einfügen:

    [code]NeueZeit = NeueZeit.ToUniversalTime();[/code]