Cálculo de dólar

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cálculo de dólar

Mensagem por JoséQuintas »

Estou retirrando as rotinas do meu aplicativo, então deixar aqui pra quem precisar, ou se algum dia eu precisar novamente.
Caso seja data futura, o valor do dólar é calculado baseado nas variações anteriores.

Código: Selecionar todos

FUNCTION CalcInd()

   LOCAL nSelect := Select(), nIndRef, nValorAnt

   SELECT jpdolar
   GOTO BOTTOM
   DO WHILE jpdolar->dlValor == 0 .AND. ! Bof()
      SKIP -1
   ENDDO
   nValorant := jpdolar->dlValor
   DO WHILE ( jpdolar->dlValor == 0 .OR. jpdolar->dlValor == nValorant ) .AND. ! Bof()
      SKIP -1
   ENDDO
   IF nValorant == 0 .OR. jpdolar->dlValor == 0
      nIndRef := 1
   ELSE
      nIndRef := nValorant / jpdolar->dlValor
      nIndRef := iif( nIndRef < 1, 1, nIndRef )
   ENDIF
   SELECT ( nSelect )

   RETURN nIndRef

FUNCTION CalcDolar( m_Data )

   LOCAL mValor, m_QtDias, m_Int7, m_VlTmp, nIndRef, m_DifDias, nSelect := Select()

   SELECT jpdolar
   IF Encontra( Dtos( m_Data ), "jpdolar","data" )
      mValor := jpdolar->dlValor
   ELSE
      nIndRef := CalcInd()
      SEEK Dtos( m_Data ) SOFTSEEK
      SKIP -1
      IF jpdolar->( Eof() )
         mValor := 1
      ELSE
         m_DifDias := m_Data - jpdolar->dlData
         m_Int7    := int( m_DifDias / 7 )
         m_Data    -= ( m_Int7 * 7 )
         m_QtDias  := m_Int7 * 5
         DO WHILE m_Data > jpdolar->dlData
            IF Dow( m_Data ) > 2
               m_QtDias += 1
            ENDIF
            m_Data -= 1
         ENDDO
         m_VlTmp := ( nIndRef ^ m_QtDias )
         IF m_VlTmp <= 0 .OR. m_vlTmp > 9999
            mValor := jpdolar->dlValor
         ELSE
            mValor := Round( jpdolar->dlValor * m_VlTmp, 2 )
         ENDIF
      ENDIF
   ENDIF
   SELECT ( nSelect )

   RETURN mValor
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Cálculo de dólar

Mensagem por fladimir »

Obrigado
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder