Tuesday, May 03, 2011

Currency Exchange Rate from Bank of Israel by Code

בין השירותים אשר מספק אתר בנק ישראל קיים שירות של שערי חליפין יציגים.
ניתן באמצעות פרוטוקול HTTP לקבל את שער החליפין היציג לפי מטבע ולפי תאריך.
הנה דוגמא לפונקציה אשר מקבלת כקלט תאריך וקוד מטבע ומחזירה את שער החליפין היציג:

private double BankOfIsraelExchangeRate(DateTime date, string currency)
{
   double ExchangeRate = 0;
   string XmlUrl = 
      "rdate=" + date.Year + date.Month.ToString("00") + 
      date.Day.ToString("00") + @"&curr=" + currency;
      DataSet dtExchangeRate = new DataSet("BankOfIsraelExchangeRate");
      dtExchangeRate.ReadXml(XmlUrl);
      if (dtExchangeRate.Tables.Count > 1)
         ExchangeRate = Convert.ToDouble
                            (dtExchangeRate.Tables[1].Rows[0][4]);
      // No exchange rate published for this date, then loop 6 days back
      else if (dtExchangeRate.Tables.Count > 0)
      {
         for (int i = 1; i <= 6; i++)
         {
            DateTime CheckDate = date.AddDays((-1) * i);
            string XmlLoopUrl = 
               "currency.php?rdate=" +
               CheckDate.Year + CheckDate.Month.ToString("00") + 
               CheckDate.Day.ToString("00") + 
               @"&curr=" + currency;

Read more: Dudi Nissan's Blog