 <p>To go from an DateTime in the "Excel Format" to a C# Date Time you can use the <a href="http://msdn.microsoft.com/en-us/library/system.datetime.fromoadate.aspx">DateTime.FromOADate</a> function.</p> <p>In your example above:</p> <pre><code> DateTime myDate = DateTime.FromOADate(41172); </code></pre> <p>To write it out for display in the desired format, use:</p> <pre><code> myDate.ToString("dd/MM/yyyy"); </code></pre> <p>If you are wondering where the discrepancies in Excel's date handling come from, it's supposed to be on purpose:</p> <blockquote> <p>When Lotus 1-2-3 was first released, the program assumed that the year 1900 was a leap year even though it actually was not a leap year. This made it easier for the program to handle leap years and caused no harm to almost all date calculations in Lotus 1-2-3.</p> <p>When Microsoft Multiplan and Microsoft Excel were released, they also assumed that 1900 was a leap year. This allowed Microsoft Multiplan and Microsoft Excel to use the same serial date system used by Lotus 1-2-3 and provide greater compatibility with Lotus 1-2-3. Treating 1900 as a leap year also made it easier for users to move worksheets from one program to the other.</p> <p>Although it is technically possible to correct this behavior so that current versions of Microsoft Excel do not assume that 1900 is a leap year, the disadvantages of doing so outweigh the advantages.</p> </blockquote> <p>Source: <a href="http://www.ozgrid.com/Excel/ExcelDateandTimes.htm">http://www.ozgrid.com/Excel/ExcelDateandTimes.htm</a></p>