Na programação Perl, porque as datas podem ter caracteres como espaços, vírgulas ou letras, você não pode simplesmente tomar duas datas e subtrair um do outro. Você precisa convertê-los em números puros antes que você possa obter a diferença entre os dois, em seguida, retornar o valor para o usuário. Convertem-se as duas datas epoch tempo , o qual é um cálculo do número de segundos que passaram desde 01 de janeiro de 1970 . Isto permite-lhe subtrair um valor de data do outro para obter a diferença . Instruções
1
Abra um novo arquivo de programa Perl. Digite o seguinte código:
usar o Time :: Local;
Este módulo contém data e hora funções que você precisa para calcular valores de tempo
2
Digite o seguinte . código :
print " Digite o dia (1-31) :";
$ day = < > ;
print " Digite o mês (1-12) : ";
$ mês = < > ;
$ mês = $ mês - 1;
print" Digite o ano : ";
$ year = < > ;
$ ano = $ ano - 1900 ;
Estas linhas solicitar que o usuário insira um dia do mês , mês e ano , tudo como inteiros . Você precisa diminuir o valor por um mês porque a função " timelocal " utiliza valores de meses de zero a 11, não um para 12. Além disso, você precisa subtrair 1900 do valor do ano para esta função também. Você pode programar um código de verificação de erros para garantir que o usuário insere um valor adequado , ou se você deseja permitir que o usuário digite um nome de mês, como "Janeiro", programa uma função para converter esse valor para zero.
3
Digite o seguinte código:
$ time = timelocal (0,0,0 , $ dia, $ mes , $ ano);
Isso cria um variável chamada $ time que chama a função timelocal para converter a data apresentada pelo usuário para epoch tempo. Os três primeiros parâmetros são todos zeros , porque eles são responsáveis por segundos, minutos e horas. Você pode solicitar ao usuário para estes valores , bem como se quiser. A função timelocal retorna um erro se a data não existe, tal como 35 de março ou até 31 de junho , por isso certifique-se de cheques seu código para essas possibilidades
4
Digite o seguinte código: .
$ CURTIME = tempo ;
$ diff = $ CURTIME - $ time ;
a primeira linha cria uma variável chamada $ CURTIME que utiliza a função de tempo para retornar a data atual na época tempo . A segunda linha cria uma variável chamada $ diff que recebe a diferença da data atual menos a data enviado pelo usuário . O resultado inteiro é o número de segundos que existem entre as duas datas. Se o número for positivo, então a data de usuário vem antes da data atual. Se o número for negativo, ele vem depois
5
Digite o seguinte código: .
If ($ diff > 0) {
$ diff = int ( $ diff /60 /60/24);
print $ diff . "Os dias se passaram desde a data em que entrou . ";
} Else {
$ diff = abs ( int ( $ diff /60/60 /24) );
imprimir "Há " . $ diff . " Mais dias até a data em que entrou . ";
}
A função verifica se ver se a data enviado pelo usuário é antes ou depois da data atual , só para saber que a declaração imprimir na tela. Em ambos os casos , o valor dif $ converte de segundos em dias , e , em seguida, para um número inteiro a partir de um flutuador ( para evitar a impressão de várias casas decimais ) . Se o valor for negativo, a função abs obtém o valor absoluto, essencialmente transformando o número negativo em um número positivo. Por exemplo, "-15 dias " se torna " de 15 dias. "
6
Salvar e executar o programa Perl.