Boa tarde,
Estou desenvolvendo uma aplicação na qual eu verifico a data de modificação de um arquivo, e verifico se esta data é inferior a 7 dias. Se for, exibo uma mensagem ao usuário.
Pois bem, eu consigo ver a data de modificação, porém, não sei como fazer esta verificação.
Sei que preciso pegar a data de hoje e comparar a data do arquivo, mas não sei como fazer. Pesquisei e testei algumas opções que eu encontrei, mas sem sucesso.
Segue um trecho do meu código.
Agradeço desde já.
File arquivo = new File(CaminhoBanco + “ADMDADOS\BACKUP\Winadmnet.zip”);
if (arquivo.exists()) {
DateFormat formatData = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
String data = formatData.format(new Date(arquivo.lastModified()));
DataBackup = data;
if (DatadoArquivo <= 7Dias) { // Aqui que estou com dificuldades
//Alerta o usuário
} else {
}
}
Vamos lá, primeiramente vamos entender como funciona o sistema de datas, pense como converter a data e hora em números isso mesmo inteiro, vamos pensar aqui como funciona o sistema de data, temos Anos, Meses, Dias, Horas, Minutos, Segundos, Milissegundos, você pode utilizar o Milissegundos para calcular basicamente tudo, vamos se basear pela era unix
Vamos a formula
1 Dia = 24 Horas
1 Hora = 60 Minutos
1 Minuto = 60 Segundos
1 Segundo = 100 Milissegundos
Ou seja para saber quantos Milissegundos tem 7 dias independente da data,
100 * 60 * 60 * 24 * 7
Milissegundos = 60480000 MS
Agora vem a pergunta da logica, Pense o seguinte
O arquivo tem a data que você pega em ms, vamos chamar de ms_arquivo, os sete dias em ms vamos chamar de ms_limit, então vamos pegar a data de hoje em em ms e chamar de ms_time, agora vamos aos calculos, Se pegar o ms_time - ms_limit vamos ter a data minima que o arquivo pode ter em ms, depois é só aplicar a condição para ver se ele é maior que o atual, segue a função para voce entender
importjava.io.File;importjava.util.Calendar;/** * * Author Gleison M. Vasconcelos * * */publicclassFileUtil{/** * * @param dias * * ex 7 dias * * */publicbooleanisFileinDate(intdias,Filefile){if(file==null||file.exists()==false||!file.isFile()){// Arquivo invalidoreturnfalse;}// MS atuallongms_atual=Calendar.getInstance().get(Calendar.MILLISECOND);// Dias maximos do arquivolongms_data=100*60*60*24*dias;// MS minimo que o arquivo pode terlongms_min=ms_atual-ms_data;longms_file=file.lastModified();// Verifica se o arquivo está dentro dos 7 diasif(ms_file>ms_min){// Está no prazo de 7 diasreturntrue;}// Prazo maior de 7 diasreturnfalse;}}