;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Prazo para renovar CNH vence no fim de abril para 185 mil motoristas em SP

Prazos para renovação da CNH interrompidos durante pandemia foram retomados no início deste ano; não perca a data-limite - Adriana Toffetti/A7 Press/Folhapress
Prazos para renovação da CNH interrompidos durante pandemia foram retomados no início deste ano; não perca a data-limite Imagem: Adriana Toffetti/A7 Press/Folhapress

Do UOL

Em São Paulo (SP)

31/03/2022 04h00

O Detran-SP (Departamento Estadual de Trânsito de São Paulo) anuncia que 184.125 condutores do Estado precisam renovar a respectiva CNH até o fim do mês de abril, após o documento vencer entre os meses de novembro e dezembro de 2020. Devido à pandemia, o Contran (Conselho Nacional de Trânsito) permitiu rodar com a habilitação vencida, mas chegou a hora de regularizar a situação.

A renovação pode ser feita online pelo portal do Detran-SP, no Poupatempo ou pelo app do Poupatempo digital. Para a realização do serviço, o titular não pode ter nenhum bloqueio no prontuário, como suspensão ou cassação do documento.

  • O UOL Carros agora está no TikTok! Acompanhe vídeos divertidos, lançamentos e curiosidades sobre o universo automotivo.

Março marca o fim do prazo para renovação de CNHs que venceram entre setembro e outubro de 2020. Se o motorista não renovar o documento no prazo correto, dirigir com CNH vencida é uma infração gravíssima, de acordo com o CTB (Código de Trânsito Brasileiro). A multa para esse tipo de penalidade é de R$ 293,47 e dá sete pontos na carteira.

Como regularizar a CNH vencida

O processo pode ser feito por meio dos canais mencionados acima.

Para o condutor que vai renovar as carteiras de habilitação categorias A e B, selecione a data e hora para exame médico com um profissional credenciado pelo Detran. No caso de profissionais que exercem atividade remunerada, é necessário que se faça também o exame psicológico.

Para quem precisa renovar CNH das categorias C, D ou E, o primeiro o é marcar exame toxicológico em uma das clínicas credenciadas.

Pague a taxa de emissão do documento no valor de R$ 116,50, que inclui o envio pelos Correios. O pagamento pode ser feito no Banco do Brasil, no Bradesco, no Santander e em casas lotéricas.

A CNH no formato digital, que é válido em todo o País, é disponibilizada por meio do aplicativo CDT (Carteira Digital de Trânsito), disponível gratuitamente nos sistemas operacionais Android e iOS.

Quer ler mais sobre o mundo automotivo e conversar com a gente a respeito? Participe do nosso grupo no Facebook! Um lugar para discussão, informação e troca de experiências entre os amantes de carros. Você também pode acompanhar a nossa cobertura no Instagram de UOL Carros.