Comparer 2 dates dont l'annee est differente

cs_kam81 Messages postés 114 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 11 février 2009 - 10 févr. 2007 à 11:55
shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 - 12 févr. 2007 à 10:17
salut,
j'ai une liste de dates sous forme de noms de fichiers(jjmmaa) situés dans un repertoire, quand j'insere un nouveau fichier je recupere son nom et je le teste avec tous les fichiers presents dans le repertoire afin d'eliminer les fichiers anciens de 2 mois ou plus (60 jours ou plus)par rapport au nouveau fichier inséré.le pb se pose quand je teste un fichier dont la date est par exemple 010206 avec le nouveau insere qui a comme date 010207(quand l'annee differe).
merci.
voici mon code:


String date=  fich.getName().substring(0,3)+"/"+fich.getName().substring(3,5)+"/"+fich.getName().substring(5,7); 
           SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
           sdf.setLenient(false);
           Date d=sdf.parse(date);


Calendar Calend1= Calendar.getInstance();
             Calend1.setTime(d);
             int jours1 = Calend1.get(Calendar.DAY_OF_YEAR);


String[] liste = rep.listNames();


for(int i=0;i<listing.length;i++) 
             {
           SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yy");
             sdf.setLenient(false);
             Date d2=sdf2.parse(liste[i].substring(0,3)+"/"+nomf.substring(3,5)+"/"+nomf.substring(5,7));
            Calendar Calend2= Calendar.getInstance();
             Calend2.setTime(d2);
             int jours2 = Calend2.get(Calendar.DAY_OF_YEAR);
            
if (jours1-jours2 >=60) rep.deleteFile(liste[i]);


}

1 réponse

shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
12 févr. 2007 à 10:17
tu peux faire plus simple :
recherche de la date butoir de suppression 1 seule fois
pour chaque nom de fichier on test le pattern de date
si test valide => suppression

Calendar cal = Calendar.getInstance();
cal.add(-60, Calendar.DAY);
// ou mieux si c'est 2 mois cal.add(-2, Calendar.MONTH);
Date dateToDelete = cal.getTime();

Date dateFile = null;
SimpleDateFormat sdf = new SimpleDateFormat("ddMMyy");
//reste à définir rep qui doit être un objet File
String[] liste = rep.listNames();
for(int i=0 ;i<listing.length;i++)   {
   dateFile  = sdf.parse(liste[i]);
   if (dateFile.before(dateToDelete ) ) {

          // suppression

   }
}
0
Rejoignez-nous