Ir para conteúdo
Fórum Script Brasil
  • 0

Cálculo de anos


Ishiai

Pergunta

Olá, faço estágio na Secretária de Saúde da cidade a qual habito e me deparei com a seguinte situação: O Ministério da Saúde oferece uns 20 programas diferentes, os quais exatamente servem para fazer pequenas consultas e atualizar dados para o Ministério, mas quando há a necessidade, por exemplo, saber quem são e onde moram, os idosos ou hipertensos do munícipio, bom, tenha certeza que terá muito trabalho... Mas descobri que o carro-chefe dos programas o CadSus exporta seus dados para XML, bom isso ajuda a descobrir por exemplo, que são e onde moram as crianças e idosos, mas para isso preciso fazer o cálculo da idade e isso não aparece, posto o código abaixo:

Exemplo de XML: a qual coloquei dados fictícios da família Silva Alegria, mas a estrutura do XML é a mesma.

<?xml version="1.0" encoding="ISO-8859-1"?>

<CADASTROS>

<ENDERECO CO_MUNICIPIO="000000" CO_TIPO_LOGRADOURO="472" NO_LOGRADOURO="Rua Tal" NU_LOGRADOURO="S/N" NO_COMPL_LOGRADOURO="" NO_BAIRRO="MACHADINHO" CO_CEP="000000-000" NU_DDD="" NU_TELEFONE="" DS_USO_MUNICIPAL="" NU_DDD_FAX="" NU_FAX="" DT_OPERACAO="06/12/2002 00:00:00" NU_VERSAO="10001" CO_ORIGEM="010" ST_CONTROLE="I" ST_EXCLUIDO="0" ST_ATIVO="1" FL_ERROS="" ST_JA_RETORNOU="1" >

<USUARIO NO_USUARIO="MARIAZINHA DA SILVA ALEGRIA" DT_NASCIMENTO="04/09/1971" CO_MUNICIPIO_NASC="410490" NO_MAE="MANOELA DA SILVA ALEGRIA" NO_PAI="SALVIANO DA SILVA ALEGRIA" ST_PROFISSIONAL="0" ST_FREQUENTA_ESCOLA="" DS_FREQUENTA_ESCOLA="" DS_EMAIL="" DS_USO_MUNICIPAL="" CO_RACA="1" DS_RACA="" CO_ESTADO_CIVIL="9" DS_ESTADO_CIVIL="" CO_SITUACAO_FAMILIAR="9" DS_SITUACAO_FAMILIAR="" CO_PAIS="010" DS_PAIS="" CO_SGRP_CBO="XXX" CO_ESCOLARIDADE="99" DS_ESCOLARIDADE="" NU_DDD="" NU_TELEFONE="" NU_DDD_2="" NU_TELEFONE_2="" CO_SEXO="F" DS_SEXO="" DT_INCLUSAO="21/09/2006 11:39:53" DT_PREENCHIMENTO_FORM="06/12/2002" CO_MUNICIPIO_RESIDENCIA="411940" ST_SEM_DOCUMENTO="0" NU_USUARIO_NO_DOMICILIO="1" ST_CONTROLE="I" ST_EXCLUIDO="0" DT_OPERACAO="17/02/2011 14:35:32" NU_VERSAO="10001" CO_LOTE="" CO_DOMICILIO="" ST_VIVO="1" FL_ERROS="" ST_CONFIRMACAO_HOMONIMO="0" ST_ENVIO_CEF="0" />

</ENDERECO>

</CADASTROS>

Abaixo o código PHP que utilizei o DOM para "puxar" os dados do XML:

<?php

$dom = new DOMDocument();

$dom->load('teste.xml');

function geratempo(){

$data = date('d/m/Y');

$data_inicial = $datanasc;

$data_final = $data;

//Cria uma funcao que retorna o timestamp de uma data no formato DD/MM/AAAA

function geraTimestamp($data){

$partes = explode('/', $data);

return mktime(0, 0, 0, $partes[1], $partes[0], $partes[2]);

}

// Usa a funcao criada e pega o timestamp das duas datas:

$time_inicial = geraTimestamp($data_inicial);

$time_final = geraTimestamp($data_final);

// Calcula a diferenca de segundos entre as duas datas:

$diferenca = $time_final - $time_inicial;

// Calcula o tempo

$anos = (int)floor($diferenca/(60*60*24*30*12));

return $anos;

}

foreach ($dom->getElementsByTagName('ENDERECO') as $ender){

$lugar = $ender->getAttribute('NO_LOGRADOURO');

$bairro = $ender->getAttribute('NO_BAIRRO');

$numero_casa = $ender->getAttribute('NU_LOGRADOURO');

foreach ($ender->getElementsByTagName('USUARIO') as $pessoas){

$desc = $pessoas->getAttribute('NO_USUARIO');

$datanasc = $pessoas->getAttribute('DT_NASCIMENTO');

echo $desc, ' data de nascimento: ', $datanasc, ' mora no endereco: ', $lugar, ' numero: ', $numero_casa, ' bairro: ', $bairro, ' e possui ', $anos, ' anos.', '<br />';

}

echo "<br />";

}

?>

O meu povo se você puderem me ajudar eu fico muito agradecido, se testarem o código vão perceber que aparece tudo menos os anos das pessoas.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...