01. april 2003 - 11:38Der er
6 kommentarer og 1 løsning
Prisberegningsmetode, en smule advanced ;-)
Hejsan,
efter ca. 15 timers jobben frem og tilbage med nedenstående metode er jeg desperat for hjælp...
Forklaring: Metoden skal udregne hvad det koster at parkere i et p hus i x timer. Følgende gælder:
1. Det er gratis at være med på en "kigger", dvs køre ud af p-huset inden for 10 minutter.
2. Hvis man bliver derinde koster første time 10 kr.
3. Efterfølgende timer koster 12 kr.
4. Det koster højst 70 kr pr døgn.
Nedenstående virker, pånær hvis parkeringstiden er flere døgn (48 timer virker sjovt nok)
public double beloeb() { long pris1 = 0; long minutter = getUdkoersel().minsAfter(getIndkoersel()); double timer = minutter / 60.0; long minutterOverEnTime = minutter % 60; int tid = new Double(timer).intValue(); if(tid<timer)tid=tid+1;
//beregning af pris for en "kigger" if(minutter<=10){ return 0.0; } //beregning af pris for en times parkering else if (minutter > 10 && minutter < 60) {//hvis pakering er mellem 10 og 60 minutter pris1 = administration.getFoersteTimepris(); }
// beregning af pris for holdetid under 6 timer else if (timer <= 6.0) { if (minutterOverEnTime == 0.0) pris1 = administration.getFoersteTimepris() + ((tid) - 1) * (administration.getEfterfoelgendeTimepris());
// beregning af pris for holdetid inden for et døgn else if (timer <= 24.0 && timer >= 6.0) {//hvis den er mere end 6, og mindre end 24 timer pris1 = administration.getMaksDagspris(); }
//holdetid svarer til hele døgn else if (timer % 24.0 == 0.0 && timer > 24.0) {
if(minutter%1440!=0){//hvis holdetid er præcis x timer mere end et døgn //timer ud over et døgn * efterfølgende timepris prisForTimerEfter=(tid%24)*administration.getEfterfoelgendeTimepris(); }
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
hvis det efter dag 1 koster 70 kroner per begyndt dag skulle følgende virker:
/** * Created by IntelliJ IDEA. * User: Søren Reinke * Date: Apr 1, 2003 * Time: 11:48:15 AM * To change this template use Options | File Templates. */ public class Parkering { public Parkering() { System.out.println("pris for 7 min = "+beregnPris(7)); System.out.println("pris for 14 min = "+beregnPris(14)); System.out.println("pris for 65 min = "+beregnPris(65)); System.out.println("pris for 10 timer = "+beregnPris(10*60)); System.out.println("pris for 34 timer = "+beregnPris(34*60)); System.out.println("pris for 7 dage = "+beregnPris(7*24*60)); }
private int beregnPris(int min) { if(min<=10) return 0; else if(min>10 && min<60) return 10; else if(min>=60 && min<60*24) { int pris=10; int timer=min/60; pris+=timer*12; if(pris>70) pris=70; return pris; } else if(min>60*24) { int dage=(min/60)/24+1; return dage*70; }
return -1; }
public static void main(String[] args) { new Parkering(); } }
Der skal lige laves lidt små rettelser i den kode:
public class Parkering { public Parkering() { System.out.println("pris for 7 min = " + beregnPris(7)); System.out.println("pris for 14 min = " + beregnPris(14)); System.out.println("pris for 65 min = " + beregnPris(65)); System.out.println("pris for 120 min = " + beregnPris(120)); System.out.println("pris for 121 min = " + beregnPris(121)); System.out.println("pris for 10 timer = " + beregnPris(10 * 60)); System.out.println("pris for 24 timer = " + beregnPris(24 * 60)); System.out.println("pris for 34 timer = " + beregnPris(34 * 60)); System.out.println("pris for 7 dage = " + beregnPris(7 * 24 * 60)); }
private int beregnPris(int min) { if (min <= 10) return 0; else if (min > 10 && min < 60) return 10; else if (min >= 60 && min < 60 * 24) { int pris = 10; int timer = (min - 1) / 60; // <---- pris += timer * 12; if (pris > 70) pris = 70; return pris; } else if (min >= 60 * 24) { // <---- int dage = (min - 1) / (60 * 24) + 1; // <---- return dage * 70; }
return -1; }
public static void main(String[] args) { new Parkering(); } }
prisen er 10 kr for første time, 12 kroner for de efterfølgende timer, dog maks 70 kr i døgnet. Dvs. man kommer højst til at betale for 6 timer (1*10+5*12). P-huset har åben fra kl 7-22 (hvilket der ikke er taget højde for, men det skulle vel ikke betyde noget umiddelbart i denne metode).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.