string_to_datetime and y2k problem
----------------------------------

                 Key: CORE-6495
                 URL: http://tracker.firebirdsql.org/browse/CORE-6495
             Project: Firebird Core
          Issue Type: Bug
          Components: Engine
    Affects Versions: 3.0.8
            Reporter: Kovalenko Dmitry
            Priority: Minor


string_to_datetime has following code for correction of y2k problem (two-digit 
year):

                tm times2;
                Firebird::TimeStamp::getCurrentTimeStamp().decode(&times2);

                // Handle defaulting of year

                if (description[position_year] == 0) {
                        times.tm_year = times2.tm_year + 1900;
                }
                else if (description[position_year] <= 2)
                {
                        // Handle conversion of 2-digit years
                        if (times.tm_year < (times2.tm_year - 50) % 100)
                                times.tm_year += 2000;
                        else
                                times.tm_year += 1900;
                }

                times.tm_year -= 1900;
                times.tm_mon -= 1;

---
This code looks to the CURRENT year, but adjust the two-digit year number on 
1900 or 2000.

When current year will be more than 2050, this code will return strange result.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to