Jump to content
Fórum Script Brasil
  • 0

Cálculo de anos


Ishiai

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...