הצעה: פורום חדש: דוגמאות קוד
-
להנהלת הפורום: אני מציע להקים אשכול חדש שיהיה מיועד לדוגמאות קוד.
משתמשים יוכלו לפרסם דוגמאות קוד שלהם, או מי שצריך דוגמה ספציפית יוכל לבקש אותה כאן.יש חשיבות שזה יהיה בנפרד מהפורום הרגיל, כי לפעמים "כשמשעמם" רוצים לעבור ולראות דוגמאות קוד....
הדוגמה צריכה להיות קצרה ועניינית כמו כאן:תודה!
פורסם במקור בפורום CODE613 ב30/12/2013 10:29 (+02:00)
-
יוזמה ברוכה,
אני בעד.ובשביל ההתחלה הנה קוד קטן לקבלת שער יציג עדכני:
private double BankOfIsraelExchangeRate(DateTime date, string currency = "01") { double ExchangeRate = 0; string XmlUrl = "http://www.boi.org.il/currency.xml?" + "rdate=" + date.ToString("yyyyMMdd") + @"&curr=" + currency; DataSet dtExchangeRate = new DataSet("BankOfIsraelExchangeRate"); dtExchangeRate.ReadXml(XmlUrl); if (dtExchangeRate.Tables.Count > 1) ExchangeRate = Convert.ToDouble (dtExchangeRate.Tables[1].Rows[0]["RATE"]); // 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 = "http://www.boi.org.il/currency.xml?" + "rdate=" + CheckDate.ToString("yyyyMMdd") + @"&curr=" + currency; DataSet dtLoopExchangeRate = new DataSet("BankOfIsraelLoopExchangeRate"); dtLoopExchangeRate.ReadXml(XmlLoopUrl); // Found valid published exchange rate if (dtLoopExchangeRate.Tables.Count > 1) { ExchangeRate = Convert.ToDouble (dtLoopExchangeRate.Tables[1].Rows[0]["RATE"]); break; } } } return ExchangeRate; } לקבלת קודי מטבעות נוספים עיין כאן.
הקוד במקורו מכאן, ועשיתי לו שיפוץ קטן כדי להתאימו לזמנינו.פורסם במקור בפורום CODE613 ב30/12/2013 22:35 (+02:00)
-
יפה!!! בדיוק חשבתי לעצמי כשהתחלתי את הפוסט הזה שזו תהיה הדוגמה הראשונה שאני יביא....
"rdate=" + date.Year + date.Month.ToString("00") + date.Day.ToString("00") + @"&curr=" + currency; אפשר לחסוך את השירשור של השנה, החודש והיום ע"י שימוש בזה:
date.ToString("yyyyMMdd")
משתמשי VB6 וVBA יכולים להשתמש בזה:
format(date,"yyyyMMdd")
כמובן שגם משתמשי VB.NET יכולים להשתמש בזה, אבל אין סיבה לעבוד קשה על פני ToString
פורסם במקור בפורום CODE613 ב31/12/2013 00:20 (+02:00)
-
תודה רבה על ההערה החשובה, תיקנתי את ההודעה שלי.
פורסם במקור בפורום CODE613 ב31/12/2013 08:52 (+02:00)
-
למה לכתוב פעמים.
למה לא לכתוב ככה.
private double BankOfIsraelExchangeRate(DateTime date, string currency = "01") { // No exchange rate published for this date, then loop 6 days back for (int i = 0; i >= -6; i--) { string XmlLoopUrl = "http://www.boi.org.il/currency.xml?" + "rdate=" + date.AddDays(i).ToString("yyyyMMdd") + @"&curr=" + currency; DataSet dtLoopExchangeRate = new DataSet("BankOfIsraelLoopExchangeRate"); dtLoopExchangeRate.ReadXml(XmlLoopUrl); // Found valid published exchange rate if (dtLoopExchangeRate.Tables.Count > 1) { return Convert.ToDouble(dtLoopExchangeRate.Tables[1].Rows[0]["RATE"]); } } return 0; } פורסם במקור בפורום CODE613 ב31/12/2013 09:30 (+02:00)
-
תודה רבה!
magicode כשמו כן הואפורסם במקור בפורום CODE613 ב31/12/2013 11:08 (+02:00)
-
סתם הערות קטנוניות על הקטע הזה למעלה.
((-1) * i)
- למה לעשות כפול שאפשר לעשות 0 פחות i או יותר קצר -i .
- בכלל לא צריך סוגריים על -1 זה סתם מבלבל בעניים.
פורסם במקור בפורום CODE613 ב31/12/2013 13:19 (+02:00)
-
אתה שוב צודק, אלא שהקוד הזה כמו שכבר ציינתי בהודעה למעלה הוא לא שלי אלא בא מהקישור בסוף ההודעה.
אולי הקוד הועתק מרפלקטור או מאיזה מתרגם שפות שדרכם לעשות דברים כאלו.פורסם במקור בפורום CODE613 ב31/12/2013 14:47 (+02:00)
-
סתם טיפ: אם יש לכם קודים כל כך מעניינים, מומלץ לפרסמם כ-Gist ב-Github. זה יותר נוח לקריאה וגם אכסון.
פורסם במקור בפורום CODE613 ב31/12/2013 23:52 (+02:00)
9/9