From 7c651fda9cd23a568a40f13af6f07b690ebf7dc2 Mon Sep 17 00:00:00 2001 From: Hartmut Birr Date: Fri, 27 Sep 2002 15:23:03 +0000 Subject: [PATCH] Fixed the calculation of leap days in RtlTimeToTimeFields. svn path=/trunk/; revision=3570 --- reactos/ntoskrnl/rtl/time.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/rtl/time.c b/reactos/ntoskrnl/rtl/time.c index ea755360803..b5b04861a76 100644 --- a/reactos/ntoskrnl/rtl/time.c +++ b/reactos/ntoskrnl/rtl/time.c @@ -1,4 +1,4 @@ -/* $Id: time.c,v 1.12 2002/09/13 18:58:36 hbirr Exp $ +/* $Id: time.c,v 1.13 2002/09/27 15:23:03 hbirr Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -117,7 +117,7 @@ RtlTimeToTimeFields ( CurYear--; /* The next calculation needs CurYear - 1 */ Days += CurYear - CurYear / 4 + CurYear / 100 - CurYear / 400; CurYear++; - Days -= EPOCHYEAR - EPOCHYEAR / 4 + EPOCHYEAR / 100 - EPOCHYEAR / 400; + Days -= EPOCHYEAR - 1 - (EPOCHYEAR -1) / 4 + (EPOCHYEAR -1) / 100 - (EPOCHYEAR - 1) / 400; while (1) { LeapYear = IsLeapYear(CurYear); @@ -131,6 +131,7 @@ RtlTimeToTimeFields ( TimeFields->Year = (CSHORT) CurYear; /* Compute month of year */ + LeapYear = IsLeapYear(CurYear); Months = MonthLengths[LeapYear]; for (CurMonth = 0; Days >= (long) Months[CurMonth]; CurMonth++) Days = Days - (long) Months[CurMonth];