(C#) 数据类型转换. 填充下列函数体
// typedef struct 
// {
// UINT16 day   :5;           // years since 1904 (MAC format)
// UINT16 month :4; 
// UINT16 year  :7; 
// } DateType;
//
// Sample; byte[] = 0x90CA   -> UInt16  = 0xCA90 -> 1100101 0100 10000 year = 101 month = 4 day =16
// year = 101 + 1904 = 2005 /// <summary>
/// DateType 转换成 代表year month day 的整形数组, 即是分离年,月,日字段
/// </summary>
/// <param name="byteDateType"></param>
/// <returns></returns>
public static int[] DateTypeToDate (byte[] byteDateType)
{
// 答案:
}

解决方案 »

  1.   

    这个是C#?没搞错把……
    typedef……
      

  2.   

    Sample code as follows:
    public static int[] DateTypeToDate (byte[] byteDateType)
    {
    if( byteDateType == null || byteDateType.Length != 2 ) return null;
    const int YEAR_INDEX = 0;
    const int MONTH_INDEX = 1;
    const int DAY_INDEX = 2; string strDateBinValue = string.Format( "{0:00000000}{1:00000000}", 
    Convert.ToString( byteDateType[1], 2 ), 
    Convert.ToString( byteDateType[0], 2 ) ); int[] nDateArray = new int[3]{ 1904, 0, 0 };//Set default value
    // Get year value
    nDateArray[ YEAR_INDEX ] += Convert.ToInt32( strDateBinValue.Substring( 0,7 ), 2 ); // Get month value
    nDateArray[ MONTH_INDEX ] = Convert.ToInt32( strDateBinValue.Substring( 7, 4 ), 2 ); // Get day value
    nDateArray[ DAY_INDEX ] = Convert.ToInt32( strDateBinValue.Substring( 11 ), 2 );
    return nDateArray;
    }