AGMedlem sedan mars 20001 229 inlägg
Jag kör varje dag ett cron job som plockar in en xml-fil och kör en parse på den, sätter sen in i databas.
Dock vet jag att vissa dagar tex alla lördagar och söndagar + andra helgdagar finns ingen uppdaterad data att tillgå.
Därför skulle jag vilja köra en kontroll i en böna som kollar ifall dagens datum är någon av de aktuella datumena, och sedan returnerar ett sant/falsk-värde + varför aktuellt datum utgår.
Jag hade tänkt att datumena skulle ligga i en txtfil enligt följande modell:
2004-01-01, Nyårsdag
2004-12-25, Juldag
Är dagens datum 2004-12-25 returneras värdet falskt och Juldag
Tänkte ha kontrollen av Lördag och Söndag hårdkodat, om ingen bättre lösning finns.
Dock funderar jag på hur man enkelt kan utforma hur den hämtar från txtfilen, och sedan returnerar ett "bra" värde.
Exempelrader mottages varmt.
tack
Andreas
LimeMedlem sedan sep. 2001837 inlägg
Att ta bort lördag och söndag är lätt. Då skapar du bara en ny Calendar (t.ex. en GregorianCalendar eftersom det är den kalendern vi går efter i västvärlden) och ur denna hämtar du Calendar.get(Calendar.DAY_OF_WEEK). Detta returnerar en int som kontrollerar om den är skiljd från Calendar.SATURDAY och Calendar.SUNDAY.
Vad gäller helgdagar så skulle jag göra så att jag la in alla dagar som jag inte ville att uppdateringen skulle köras i en HashMap baserat på t.ex en Date och med ett statisk blajvärde. Sedan när jag uppdateringen körs så gör man en slagning mot HashMapen och om man får något tillbaka så struntar man i att köra.
Nått sånt här (inte testat)
HashMap dateMap = new HashMap();
final String BLAJ_VALUE = "gummilurka";
dateMap.put(new GregorianCalendar(2004, 1, 19), BLAJ_VALUE);
dateMap.put(new GregorianCalendar(2004, 1, 26), BLAJ_VALUE);
// Jag vill inte att det körs på lördag och söndag samt den 19 och 26 feb
GregorianCalendar dayToRun;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
for (int dayOfMonth = 1; dayOfMonth < 30; dayOfMonth++)
{
dayToRun = new GregorianCalendar(2004, 1, dayOfMonth);
int dow = dayToRun.get(Calendar.DAY_OF_WEEK);
out.println("dow= " + dow);
// Is is saturday or sunday?
if((dow != Calendar.SATURDAY) && (dow != Calendar.SUNDAY))
{
// Check if we have the date in the map
if(dateMap.get(dayToRun) == null)
{
System.out.println(sdf.format(dayToRun.getTime())) + "is a good day to run.";
}
else
{
System.out.println(sdf.format(dayToRun.getTime())) +"is found in No-Run-List.";
}
}
else
{
System.out.println(sdf.format(dayToRun.getTime())) +" is a saturday or sunday. Nothing to run!";
}
}
/Lime