⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sellman.cpp

📁 我自己整理的一些VC源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}

BOOL ConstructVar( CString strValue, int type, VARIANT *var )
{
	COleDateTime var_date;
	CURRENCY cy;
	cy.Hi = 0;

	switch( type )
	{
	case adEmpty:// = 0,
		var->vt = VT_EMPTY;
		break;
	case adTinyInt:// = 16,
		var->vt = VT_I1;
		var->cVal = atoi( strValue );
		break;
	case adSmallInt:// = 2,
		var->vt = VT_I2;
		var->iVal = atoi( strValue );
		break;
	case adInteger:// = 3,
		var->vt   = VT_I4;
		var->lVal = atoi( strValue );
		break;
	case adBigInt:// = 20,
		var->vt   = VT_I4;
		var->lVal = atoi( strValue );
		break;
	case adUnsignedTinyInt:// = 17,
		var->vt = VT_UI1;
		var->bVal = atoi( strValue );
		break;
	case adUnsignedSmallInt:// = 18,
		var->vt = VT_UI2;
		var->uiVal = atoi( strValue );
		break;
	case adUnsignedInt:// = 19,
		var->vt = VT_UI4;
		var->ulVal = atol( strValue );
		break;
	case adUnsignedBigInt:// = 21,
		var->vt = VT_UI4;
		var->ulVal = atol( strValue );
		break;
	case adSingle:// = 4,
		var->vt = VT_R4;
		var->fltVal = (float)atof( strValue );
		break;
	case adDouble:// = 5,
		var->vt = VT_R8;
		var->dblVal = atof( strValue );
		break;
	case adCurrency:// = 6,
		var->vt    = VT_CY;
		cy.Lo      = atoi( strValue );
		cy.int64   = atoi( strValue );
		var->cyVal = cy;
		break;
	case adDecimal:// = 14,
		break;
	case adNumeric:// = 131,
		var->vt = VT_R8;
		var->dblVal = atol( strValue );
		break;
	case adBoolean:// = 11,
		break;
	case adError:// = 10,
		break;
	case adUserDefined:// = 132,
		break;
	case adVariant:// = 12,
		break;
	case adIDispatch:// = 9,
		break;
	case adIUnknown:// = 13,
		break;
	case adGUID:// = 72,
		break;
	case adDate:// = 7,
		break;
	case adDBDate:// = 133,
		break;
	case adDBTime:// = 134,
		break;
	case adDBTimeStamp:// = 135,
		var->vt = VT_DATE;
		var->date = var_date;
		break;
	case adBSTR:// = 8,
		var->vt      = VT_BSTR;
		var->bstrVal = (_bstr_t)strValue;
		break;
	case adChar:// = 129,
		var->vt      = VT_BSTR;
		var->bstrVal = (_bstr_t)strValue;
		break;
	case adVarChar:// = 200,
		var->vt      = VT_BSTR;
		var->bstrVal = (_bstr_t)strValue;
		break;
	case adLongVarChar:// = 201,
		var->vt      = VT_BSTR;
		var->bstrVal = (_bstr_t)strValue;
		break;
	case adWChar:// = 130,
		var->vt      = VT_BSTR;
		var->bstrVal = (_bstr_t)strValue;
		break;
	case adVarWChar:// = 202,
		var->vt      = VT_BSTR;
		var->bstrVal = (_bstr_t)strValue;
		break;
	case adLongVarWChar:// = 203,
		var->vt      = VT_BSTR;
		var->bstrVal = (_bstr_t)strValue;
		break;
	case adBinary:// = 128,
		break;
	case adVarBinary:// = 204,
		break;
	case adLongVarBinary:// = 205,
		break;
	case adChapter:// = 136,
		break;
	case adFileTime:// = 64,
		break;
	case adPropVariant:// = 138,
		break;
	case adVarNumeric:// = 139,
		break;
	case adArray:// = 8192;
		break;
	}

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
		// No message handlers
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

// App command to run the dialog
void CSellManApp::OnAppAbout()
{
	CAboutDlg aboutDlg;
	aboutDlg.DoModal();
}

/////////////////////////////////////////////////////////////////////////////
// CSellManApp message handlers

int GetMonthDays( int nYear , int nMonth )
{
	unsigned int nDays = 0;

	switch( nMonth )
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		nDays = 31;
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		nDays = 30;
		break;
	case 2:
		if ( ((nYear%4 == 0) && (nYear%100 != 0)) || (nYear%400 == 0) )
			nDays = 29;
		else
			nDays = 28;
		break;
	}
	return nDays;
}

CString DateAppendToString( CString strDate, int nDays )
{
	CString strTmp;
	int years = 0;
	int months = 0;
	int days = 0;
	int nAppendYears = 0;
	int nMonthDays = 0;
	int nAbsCurDays = 0;
	if( strDate.GetLength() >= 8 )
	{
		strTmp = strDate.Left( 4 );
		years = atoi( strTmp );
		strTmp = strDate.Left( 6 ).Right( 2 );
		months = atoi( strTmp );
		strTmp = strDate.Left( 8 ).Right( 2 );
		days = atoi( strTmp );

		for( int i = 1; i < months; i ++ )
		{
			nMonthDays += GetMonthDays( years, i );
		}
		nAbsCurDays = nMonthDays + days + nDays;

		nAppendYears = nAbsCurDays / GetYearDays( years );
		for( i = years; i < years + nAppendYears; i ++ )
			nAbsCurDays -= GetYearDays( i );
		years += nAppendYears;
		months = 1;
		while( nAbsCurDays > GetMonthDays( years, months ) )
		{
			nAbsCurDays -= GetMonthDays( years, months );
			months ++;
		}
		strTmp.Format( "%04d%02d%02d", years, months, nAbsCurDays );
	}

	return strTmp;
}

int GetYearDays( int nRet )
{
	int nYear = 0;
	int nDays = 0;

	nYear = nRet;
	
	if ( ((nYear%4 == 0) && (nYear%100 != 0)) || (nYear%400 == 0) )
	{
		nDays = 366;
	}
	else
	{
		nDays = 365;
	}
	return nDays;
}

int DecDays( CString strStartDate, CString strEndDate )
{
	char szDate1[ 10 ];
	char szDate2[ 10 ];

	strcpy( szDate1, strStartDate );
	strcpy( szDate2, strEndDate );
	
	return GetDays( szDate1 ) - GetDays( szDate2 );
}

int GetDays( LPCTSTR pszDate )
{

	int nFristLen = 0 , nSecondLen = 0;
	int nRet = 0,nDays=0;
	int nStartYear,nStartMonth , nStartDay;
	char szTemp[ 10 ];
	
	//初始化^_^
	nStartYear = nStartMonth = nStartDay = 0;
	nFristLen  = strlen( pszDate );
	
	if ( nFristLen != 8  )
	{
		nRet = -1;
	}
	else
	{
		memset( szTemp, 0, 10 );
		strncpy( szTemp, pszDate, 4 );
		nStartYear = atol(szTemp); 
		
		memset( szTemp, 0, 10 );
		strncpy( szTemp, &pszDate[4],2);
		nStartMonth = atol(szTemp); 
		
		memset( szTemp, 0, 10 );
		strncpy( szTemp, &pszDate[6], 2 );
		nStartDay = atol(szTemp);
		
		if( nStartYear >= 1970 )
		{
			for( int i = 1970; i < (int)nStartYear; i ++ )
				nDays += GetYearDays( i );
			
			for( i = 1; i < (int)nStartMonth; i ++ )
				nDays += GetMonthDays( nStartYear, i );
			
			nRet = nDays + nStartDay;
		}
		else nRet = 0;
	}
	
	return nRet;
}

int CSellManApp::ExitInstance() 
{
	if( bConnected )
	{
		connection->Close();
		connection.Release();
	}
	
	return CWinApp::ExitInstance();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -