salve a tutti , ecco l'ennesimo problema riscontrato sul mio software

ho una funzione che si connette al server del nist e setta l'ora di sistema con un certo scarto.

un cliente mi ha detto di avere un problema alquanto strano ( ho circa 40 clienti al momento ) ,

la funzione che setta l'ora di sistema invece di settare ad esempio la data 18.01.2008
scambia i numeri e setta 08.01.2018 ... alquanto strano ...
il codice incriminato e' questo :

codice:
Private Declare Function SetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) As Long

Public Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer

    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer

    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer

End Type

Dim JSys As SYSTEMTIME

       JSys.wYear = Year(dataoggi)
       JSys.wMonth = Month(dataoggi)
       JSys.wDayOfWeek = 0 'Not used
       JSys.wHour = Hour(datDate)
       JSys.wMinute = Minute(datDate)
       JSys.wSecond = Second(datDate) - 1
       JSys.wDay = Day(dataoggi)
       
       If msAdj = 0 Then
          JSys.wMilliseconds = 0 'non setto i millesimi
       Else
          JSys.wMilliseconds = ((10000 - msAdj) / 10) 'setto i millesimi
       End If

          RetVal = SetSystemTime(JSys)

       If RetVal <> 0 Then
          StBar.SimpleText = " Orario settato correttamente , inizio verifica su server ebay"
       Else
          StBar.SimpleText = " Errore di sistema , inizio sincronizzazione standart"
       End If
apparentemente non dovrebbe essere qui l'errore

sia datdate che dataoggi sono date ,
possibile che ci sia qualche impostazione internazionale nel pc del cliente ( ha windows XP ) che causa questo errore ?