Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags 'hora'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Categorias

Não há resultados

Categorias

  • Notes ACBrLibNFe

Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 5 registros

  1. Bom dia Estou usando a seguinte função para capturar a data e hora do servidor: AcbrNfe1.WebServices.StatusServico.Executar; hrserv26 := TimeToStr(AcbrNfe1.WebServices.StatusServico.dhRecbto); dtsrv26 := dateToStr(AcbrNfe1.WebServices.StatusServico.dhRecbto); Estou no RN, e aqui usamos o servidor do RS. Atrasei a hora do meu computador em 60 min, e ao invés do retorno ser 10:00 hrs, ainda está me retornando a hora atrasada. Verifiquei o XML da consulta, e este vem com a data e hora do servidor. Não tenho certeza, mas acho que o retorno com atraso esteja nessa função da unit AcbrNFeWebservices if (pos('svrs.rs.gov.br', FPURL) > 0) and (MinutesBetween(NFeRetorno.dhRecbto, Now) > 50) and (not IsHorarioDeVerao(CUFtoUF(FcUF), NFeRetorno.dhRecbto)) then FdhRecbto:= IncHour(NFeRetorno.dhRecbto,-1) else FdhRecbto := NFeRetorno.dhRecbto; Existe alguma forma configurar o componente para chamar essa função apenas no período do horário de verão ? Desde já agradeço a atenção.
  2. Olá a todos! Ao gerar o xml o campo hSaiEnt, alimentado via código, não aparece no xml, e nem no danfe, assumindo sempre o valor 00:00:00, mesmo mudando as properts usadas de hSaiEnt para dSaiEnt. Os fontes do meu ACBr estão atualizados. Alguém está com o mesmo problema? Código: Ide.hSaiEnt := StrToTime(cl_notasnfe.FieldByName('HORA').AsString); ACBr unit ACBrNFeDANFERDM.pas, método CarregaIdentificacao: FieldByName('HoraSaida').AsString := ifthen(TimeOf(FNFe.ide.dSaiEnt)=0, '', TimeToStr(FNFe.ide.dSaiEnt)); xml em anexo. 31161216919003000163550010007005341007005347-nfe.xml
  3. Bom dia! Durante esse mês notei que em alguns clientes está salvando a data errada, aumentando um dia na data da venda. Isso em vários clientes, seguindo um padrão de dias mas não todos os dias. Imagino que tenha algo com ano bissexto. Com algumas pesquisas, no código do jACBrFramework, na class OleData.java e deixei da seguinte forma. Método setDate(double dtSrc); //<editor-fold defaultstate="collapsed" desc="OleDate Conversion Methods"> @SuppressWarnings("empty-statement") private void setDate(double dtSrc) { // source code copied from MFC 4.21 and modified long nDaysAbsolute; // Number of days since 1/1/0 long nSecsInDay; // Time in seconds since midnight long nMinutesInDay; // Minutes in day long n400Years; // Number of 400 year increments since 1/1/0 long n400Century; // Century within 400 year block (0,1,2 or 3) long n4Years; // Number of 4 year increments since 1/1/0 long n4Day; // Day within 4 year block // (0 is 1/1/yr1, 1460 is 12/31/yr4) long n4Yr; // Year within 4 year block (0,1,2 or 3) boolean bLeap4 = true; // TRUE if 4 year block includes leap year // values in terms of year month date. int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; double dblDate = dtSrc; // temporary serial date // If a valid date, then this conversion should not overflow // Round to the second dblDate += ((dtSrc > 0.0) ? HALF_SECOND : -HALF_SECOND); // Add days from 1/1/0 to 12/30/1899 nDaysAbsolute = (long) dblDate + 693959L; dblDate = Math.abs(dblDate); nSecsInDay = (long) ((dblDate - Math.floor(dblDate)) * 86400.); // Leap years every 4 yrs except centuries not multiples of 400. n400Years = nDaysAbsolute / 146097L; // Set nDaysAbsolute to day within 400-year block nDaysAbsolute %= 146097L; // -1 because first century has extra day n400Century = (nDaysAbsolute - 1) / 36524L; // Non-leap century if (n400Century != 0) { // Set nDaysAbsolute to day within centurY nDaysAbsolute = (nDaysAbsolute - 1) % 36524L; // +1 because 1st 4 year increment has 1460 days n4Years = (nDaysAbsolute + 1) / 1461L; if (n4Years != 0) { n4Day = (nDaysAbsolute + 1) % 1461L; } else { bLeap4 = false; n4Day = nDaysAbsolute; } } else { // Leap century - not special case! n4Years = nDaysAbsolute / 1461L; n4Day = nDaysAbsolute % 1461L; } if (bLeap4) { // -1 because first year has 366 days n4Yr = (n4Day - 1) / 365; if (n4Yr != 0) { n4Day = (n4Day - 1) % 365; } } else { n4Yr = n4Day / 365; n4Day %= 365; } tm_year = (int) (n400Years * 400 + n400Century * 100 + n4Years * 4 + n4Yr); // Handle leap year: before, on, and after Feb. 29. if (n4Yr == 0 && bLeap4 && n4Day == 59) { /* Feb. 29 */ tm_mon = 2; tm_mday = 29; } else { if (n4Yr == 0 && bLeap4 && n4Day >= 59) { --n4Day; } // Make n4DaY a 1-based day of non-leap year and compute // month/day for everything but Feb. 29. ++n4Day; // Month number always >= n/32, so save some loop time */ for (tm_mon = (int) ((n4Day >> 5) + 1); n4Day > rgMonthDays[tm_mon]; tm_mon++); tm_mday = (int) (n4Day - rgMonthDays[tm_mon - 1]); } if (nSecsInDay == 0) { tm_hour = tm_min = tm_sec = 0; } else { tm_sec = (int) (nSecsInDay % 60L); nMinutesInDay = nSecsInDay / 60L; tm_min = (int) (nMinutesInDay % 60); tm_hour = (int) (nMinutesInDay / 60); } Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, tm_year); c.set(Calendar.MONTH, tm_mon - 1); c.set(Calendar.DAY_OF_MONTH, tm_mday); c.set(Calendar.HOUR, tm_hour); c.set(Calendar.MINUTE, tm_min); c.set(Calendar.SECOND, tm_sec); setTime(c.getTime().getTime()); // setYear(tm_year - 1900); // setMonth(tm_mon - 1); // super.setDate(tm_mday); // resolves ambiguity // between OleDate.setDate and // java.util.Date.setDate // setHours(tm_hour); // setMinutes(tm_min); // setSeconds(tm_sec); } //</editor-fold> Método toDouble(); public double toDouble() { // source code copied from MFC 4.21 and modified. Calendar c = Calendar.getInstance(); c.setTime(this); int wYear = c.get(Calendar.YEAR); int wMonth = c.get(Calendar.MONTH); int wDay = c.get(Calendar.DAY_OF_MONTH); int wHour = c.get(Calendar.HOUR);; int wMinute = c.get(Calendar.MINUTE);; int wSecond = c.get(Calendar.SECOND);; // Check for leap year and set the number of days in the month boolean bLeapYear = ((wYear & 3) == 0) && ((wYear % 100) != 0 || (wYear % 400) == 0); // Cache the date in days and time in fractional days long nDate; double dblTime; //It is a valid date; make Jan 1, 1AD be 1 nDate = wYear * 365L + wYear / 4 - wYear / 100 + wYear / 400 + rgMonthDays[wMonth - 1] + wDay; // If leap year and it's before March, subtract 1: if (wMonth >= 2 && bLeapYear) { --nDate; } // Offset so that 12/30/1899 is 0 nDate -= 693959L; dblTime = (((long) wHour * 3600L) + // hrs in seconds ((long) wMinute * 60L) + // mins in seconds ((long) wSecond)) / 86400.; double dtDest = (double) nDate + ((nDate >= 0) ? dblTime : -dblTime); return dtDest; } No caso do toDouble foi só removido variáveis sem uso e métodos deprecated No setDate foi removido métodos deprecated e ajustado o increment do dia, esse ajuste eu tirei de "https://github.com/tbrandt77/janrufmonitor/blob/master/modules/outlook/src/de/janrufmonitor/repository/OutlookDate.java" Caso alguém tenha o mesmo problema está ai, ao menos comigo até agora resolveu, qualquer problema que eu tiver, eu posto aqui.
  4. Bom dia colegas, estou com um problema que está dando somente em 1 computador (o do meu chefe, heheheheheheh) No ACBRNFeMonitor utilizo o comando NFE.LerNFe para importar as informacoes de um arquivo XML. Porém no computador em questão a data e hora estão vindo no padrão americano, mm/dd/yyyy e hh:mm pm/am Já verifiquei as configuracoes do windows e está tudo certo no padrao Brasileiro... Onde mais poderia estar errado??? O mesmo executavel que roda no windows dele (é Windows 7 64bits Professional pt-BR) roda em todos os outros clientes (e no meu pc tbm) e em nenhum lugar dá esse erro... Abaixo o trecho da resposta do Monitor no pc dele e no meu:
  5. Bom dia pessoal, estou tentando implementar um detector de mudança de horário para que não dê problema na emissão de cupom se o usuário trocar a mesma. Consegui esse source: protected FWMTimeChangeTimeStamp: TDateTime; procedure WMTimeChange(var Msg: TMessage); message WM_TIMECHANGE; //---- procedure TFormPdv.WMTimeChange(var Msg: TMessage); begin inherited; if Now-FWMTimeChangeTimeStamp>0.01 then //Aproximadamente 15 minutos begin ShowMessage('Modificação de horário do computador detectado!'); FWMTimeChangeTimeStamp := Now; end; end; Mas quando fui testar essa procedure é chamada duas vezes quando é realizada a modificação do horário, inviabilizando o uso da mesma em um processo que tenho aqui. Alguém teria alguma outra idéia de como eu poderia estar fazendo esse procedimento de detecção? Desde já agradeço!
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.