c# convert OADate to Valid DateTime Microsoft.Office.Interop.Excel
<p>i'm trying to get a date field from Excel file, but the date came with general format like "42373", i tryed everything such as converting to double then to datetime. I cannot find any code to help me, I'm using a business system to do that .. so thats why the regular code i'm finding here wont work</p>

<p>i want to get that "42373" and format as valid date (2016-04-01) and them get the "MMM" from it.</p>

<p>obs: using CSharp Ineterop.</p>

<pre><code>   using System;
   using System.Text;
   using System.Reflection;
   using System.Collections;
   using System.Globalization;
   using System.Collections.Generic;
   using System.Collections.ObjectModel;
   using Microsoft.Office.Interop.Excel;

   public class Macro : MacroBase {

   private enum Header1 {
   [Name("ACCOUNT  NUMBER")]
   Begin,
   }

   private enum Header2 {
   [Name("PERIOD  COVERED")]
   Period,
  }

  protected override bool Run() {

    var RSheet = (Worksheet)TargetWorkbook.Worksheets[1];
    if (RSheet == null)
        return false;

   var excelTable = new ExcelTable&lt;Header2&gt;(){ CacheHeaders = true };
    if (excelTable.Initialize(RSheet) == false)
        return false;

    var excelTable1 = new ExcelTable&lt;Header1&gt;(){ CacheHeaders = true };
    if (excelTable1.Initialize(RSheet) == false)
        return false;

     var Periodo = excelTable[Header2.Period].get_Offset(1,0).Value;

      excelTable1[Header1.Begin].get_Offset(2,0).Value2 = Periodo;

     return true;
   }

   }
</code></pre>

<p>WORKS</p>

<pre><code>      string Periodo =        excelTable[Header2.Period].get_Offset(1,0).Value.ToString();      
       excelTable1[Header1.Begin].get_Offset(2,0).Value = DateTime.FromOADate(42373).ToString("MMM");
</code></pre>

<p>DON'T WORK</p>

<pre><code>     DateTime.FromOADate(Periodo).ToString("MMM");
</code></pre>