Gå til innhold

Utregning av valutakurs


Anbefalte innlegg

Litt på kanten til å gå i PHP-forumet, siden det er en matte-formel jeg trenger, men...

 

Jeg henter ut kursen for EUR fra http://www.ny.frb.org/markets/fxrates/noon.cfm og lagrer den i $valuta_eur_value. Henter også ut kursen for NOK og lagrer i $valuta_nok_value.

 

Har et skjema hvor man skal fylle ut antall NOK og få det ut i antall EUR.

Siden kursen på siden tar utgangspunkt i USD, må jeg regne om kursen for EUR til å være i forhold til NOK.

 

Hvordan gjør jeg det?

Lenke til kommentar
Videoannonse
Annonse

Den siste delen av spørsmålet ditt er jeg ikke sikker på at jeg tolker riktig, men € til NOK er da simpelt.

 

antall NOK / kurs = antall €

antall € * kurs = antall NOK

 

Hvor kurs er forholdet NOK/€, typisk 8 NOK per €.

Lenke til kommentar

Da var formelen min riktig likevel da... hmm...

Jeg henter kursene fra http://www.ny.frb.org/markets/fxrates/FXto...00&FEXtime=1200

 

Og henter de ut der, men når jeg regner om blir det slik:

http://www.reinsveien.com/test/valuta3.php

 

Altså langt fra kursen som TV2 har på sine sider...

 

Her er kildekoden:

<html>

<head>
<title>Valuta - WGI</title>
</head>

<body>
<center>
<?php

$dag = date("d");
$mnd = date("m");
$year = date("Y");

$myURL = "http://www.ny.frb.org/markets/fxrates/FXtoXML.cfm?FEXdate=$year%2D$mnd%2D$dag%2000%3A00%3A00&FEXtime=1200";


 $fp = fopen($myURL, "r") or
 die("Couldnt open file");


while ($line = fgets($fp, 1024)) {
 $gets .= $line;
}
fclose($fp);

// CHF - START
$start_chf_value = strpos($gets, '<Country UnitName="Franc">');
$end_chf_value = strpos($gets, ' Id="5">');
$valuta_chf_value = substr($gets, $start_chf_value, $end_chf_value - $start_chf_value);

$valuta_chf_value = str_replace('<Country UnitName="Franc">Switzerland</Country> ', '',  $valuta_chf_value);
$valuta_chf_value = str_replace('<Value InUsd="false">', '',  $valuta_chf_value);
$valuta_chf_value = str_replace('</Value>', '',  $valuta_chf_value);
$valuta_chf_value = str_replace('</Rate>', '',  $valuta_chf_value);
$valuta_chf_value = str_replace('<Rate TimeOfRate="12noon" TypeOfRate="spot"', '',  $valuta_chf_value);

$valuta_chf_value = trim($valuta_chf_value);
// CHF - END


// EUR - START 
$start_eur_value = strpos($gets, '<Country UnitName="Euro">');
$end_eur_value = strpos($gets, 'Id="8">');
$valuta_eur_value = substr($gets, $start_eur_value, $end_eur_value - $start_eur_value);

$valuta_eur_value = str_replace('<Country UnitName="Euro">European Monetary Union</Country> ', '',  $valuta_eur_value);
$valuta_eur_value = str_replace('<Value InUsd="true">', '',  $valuta_eur_value);
$valuta_eur_value = str_replace('</Value>', '',  $valuta_eur_value);
$valuta_eur_value = str_replace('</Rate> ', '',  $valuta_eur_value);
$valuta_eur_value = str_replace('<Rate TimeOfRate="12noon" TypeOfRate="spot" ', '',  $valuta_eur_value);

$valuta_eur_value = trim($valuta_eur_value);
// EUR - END
  
 // NOK - START 
$start_nok_value = strpos($gets, '<Country UnitName="Krone">Norway');
$end_nok_value = strpos($gets, 'Id="16">');
$valuta_nok_value = substr($gets, $start_nok_value, $end_nok_value - $start_nok_value);

$valuta_nok_value = str_replace('<Country UnitName="Krone">Norway</Country>', '',  $valuta_nok_value);
$valuta_nok_value = str_replace('<Value InUsd="false">', '',  $valuta_nok_value);
$valuta_nok_value = str_replace('</Value>', '',  $valuta_nok_value);
$valuta_nok_value = str_replace('</Rate> ', '',  $valuta_nok_value);
$valuta_nok_value = str_replace('<Rate TimeOfRate="12noon" TypeOfRate="spot" ', '',  $valuta_nok_value);

$valuta_nok_value = trim($valuta_nok_value);
// NOK - END

//Sist oppdater dato - START
$start_date_value = strpos($gets, "<Date>");
$end_date_value = strpos($gets, '</Date>');
$valuta_date_value = substr($gets, $start_date_value, $end_date_value - $start_date_value);

$valuta_date_value = str_replace('<Date>', '',  $valuta_date_value);

$valuta_eur_value = trim($valuta_eur_value);
//Sist oppdater dato - END 

//Regn ut kurs i forhold til NOK i stedet for USD
$valuta_chf_value = $valuta_nok_value * $valuta_chf_value / 100;
$valuta_eur_value = $valuta_nok_value * $valuta_eur_value / 100;

?>

<script>
function beregn() {
//Sett variabler
NOK_org = form.NOK_org.value;
CHF_org = form.CHF_org.value;
EUR_org = form.EUR_org.value;

//Kurs
EUR_kurs = <?php echo $valuta_eur_value; ?>;
CHF_kurs = <?php echo $valuta_chf_value; ?>;

//Fra NOK
form.CHF_1.value = NOK_org * CHF_kurs;
form.EUR_1.value = NOK_org * EUR_kurs;
form.CHF_1.value = Math.round(form.CHF_1.value*Math.pow(10,2))/Math.pow(10,2);
form.EUR_1.value = Math.round(form.EUR_1.value*Math.pow(10,2))/Math.pow(10,2);

//Fra CHF
form.NOK_2.value = CHF_org / CHF_kurs;
form.EUR_2.value = CHF_org / CHF_kurs * EUR_kurs;
form.NOK_2.value = Math.round(form.NOK_2.value*Math.pow(10,2))/Math.pow(10,2);
form.EUR_2.value = Math.round(form.EUR_2.value*Math.pow(10,2))/Math.pow(10,2);

//Fra EUR
form.CHF_3.value = EUR_org / EUR_kurs * CHF_kurs;
form.NOK_3.value = EUR_org / EUR_kurs;
form.CHF_3.value = Math.round(form.CHF_3.value*Math.pow(10,2))/Math.pow(10,2);
form.NOK_3.value = Math.round(form.NOK_3.value*Math.pow(10,2))/Math.pow(10,2);

}
</SCRIPT>
<form method="POST" name="form" onsubmit="this.form.button_name.click()">
<TABLE border="0">
<tr>
<td> </td>
<td><b><center>Beløp</td>
<td></td>
<td><b><center>NOK</td>
<td><b><center>CHF</td>
<td><b><center>EUR</td>
</tr>

<tr>
<td><b>NOK:</td>
<td><INPUT type="text" size="8" name="NOK_org"></td>

<td>---></td>
<td><b><center>X</td>
<td><INPUT type="text" size="8" name="CHF_1" readonly></td>
<td><INPUT type="text" size="8" name="EUR_1" readonly></td>
</tr>

<tr>
<td><b>CHF:</td>
<td><INPUT type="text" size="8" name="CHF_org"></td>

<td>---></td>
<td><INPUT type="text" size="8" name="NOK_2" readonly></td>
<td><b><center>X</td>
<td><INPUT type="text" size="8" name="EUR_2" readonly></td>
</tr>

<tr>
<td><b>EUR:</td>
<td><INPUT type="text" size="8" name="EUR_org"></td>

<td>---></td>
<td><INPUT type="text" size="8" name="NOK_3" readonly></td>
<td><INPUT type="text" size="8" name="CHF_3" readonly></td>
<td><b><center>X</td>
</tr>

</TABLE>
<br>
<input type="button" onclick="beregn()" value="Beregn" name="button_name">
<input type="reset">
<br><br>
</form>


<font size="2" face="verdana">
<br>
<b>Kurs pr 100 NOK:</b><br>
CHF: <?php echo round($valuta_chf_value * 100, "2"); ?><br>
EUR: <?php echo round($valuta_eur_value * 100, "2"); ?><br>
<br><br>

<font size="1">
Valutakurser oppdatert <b><?php echo $valuta_date_value; ?></b>.<br>
Programmert av ZoRaC.

</body>
</html>

 

Noen som finner noe feil?

Lenke til kommentar

kanskje vi ikke skal være så frekk i kjeften?

 

Zorac, ditt regnestykke er vel ikke helt rett likevel? Må passe på hvordan kursen er angitt:

 

1.2726 USD/EUR    fordi:   <Value InUsd="true">
6.716 NOK / USD   fordi:   <Value InUsd="false">
1.2268 CHF / USD  fordi:   <Value InUsd="false">

Eurokursen: 6.716 NOK/USD  *  1.276 USD/EUR  =  8.570
CHF-kursen: 100 * 6.716 NOK/USD  /  1.2268 CHF/USD  =  547.44

 

ZoRac, det kan være vell verd å bruke php sine egne XML funksjoner til dette!

http://no2.php.net/manual/en/ref.xml.php

Lenke til kommentar
  • 13 år senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...