Basic and Advance C Question:
Download Job Interview Questions and Answers PDF
Did C have any Year 2000 problems?
Answer:
No, although poorly-written C programs might have.
The tm_year field of struct tm holds the value of the year minus 1900; this field therefore contains the value 100 for the year 2000. Code that uses tm_year correctly (by adding or subtracting 1900 when converting to or from human-readable 4-digit year representations) has no problems at the turn of the millennium. Any code that used tm_year incorrectly, however, such as by using it directly as a human-readable 2-digit year, or setting it from a 4-digit year with code like
tm.tm_year = yyyy % 100; /* WRONG */
or printing it as an allegedly human-readable 4-digit year with code like
printf("19%d", tm.tm_year); /* WRONG */
would have had grave y2k problems indeed.
(The y2k problem is now mostly old history; all we have left to do is fix all the 32-bit time_t problems by 2038...)
The tm_year field of struct tm holds the value of the year minus 1900; this field therefore contains the value 100 for the year 2000. Code that uses tm_year correctly (by adding or subtracting 1900 when converting to or from human-readable 4-digit year representations) has no problems at the turn of the millennium. Any code that used tm_year incorrectly, however, such as by using it directly as a human-readable 2-digit year, or setting it from a 4-digit year with code like
tm.tm_year = yyyy % 100; /* WRONG */
or printing it as an allegedly human-readable 4-digit year with code like
printf("19%d", tm.tm_year); /* WRONG */
would have had grave y2k problems indeed.
(The y2k problem is now mostly old history; all we have left to do is fix all the 32-bit time_t problems by 2038...)
Download C Programming Interview Questions And Answers
PDF
Previous Question | Next Question |
How can I get random integers in a certain range? | How can I sort more data than will fit in memory? |