# قطعة حمراء من الرمز ...توليد أرقام (th,rd etcM SK3

<datetime class="hidden">2004-07-03T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
تحديث: البرمجة التالية بالطبع لديها خطأ ( كتبتها لاختبار المهارات الإدراكية للمجتمع ;-)) على أية حالM SK3 قام فيليب ريك بتعليق نسخة أكثر صدقاً

هيم .. إنني أراهن أنك صادفتها مرة أخرى بعد أن نسيتها لأنك رميتها بعيداً . ستعيد النتيجة الخاطئة للدخولات مثل | "42", | |"123", | الـ "101", | إلخ | МSK5 | أنا | ' | لقد فعلت ذلك كثيراً ♫ - | أحفظ الشفرة لسبب ما حتى عندما تكون | مSK8 | غير صحيحة | من نوع | المSK9 | مثل الـ | ما supplied it by the vendor | الشفرة الـ , | أو أنه يحتوي على بعض الخدع فيه | وثم بعد سنة أجدها وعلي اختبارها مجدداً لأنني لم أتسجل . لماذا أحفظها . . مSK14 | طريقة لا فائدة لإنقاذ الأشياء | امSK15 | لكن لدي القليل من العادات السيئة |

هنا ' واحدة أستخدمها كثيراً ( حسناً ,, نوعاً ما .- إنها , ' , من أعلى الرأس .

سلسلة ثابتة خاصة GetOrdinal(int number)
{
في مكان = رقم % 10;
إذا( مكان &gt; 3) يعود  "th";

//قضية خاصة للمراهقين
بين المراهقين = رقم % 100;
إذا( عشر &lt; 20  &&مراهق &gt; 10)
{
أرجع "th";
}
إذا كان ( مكان == 1) يعيد SSK3st";
إذا كان ( مكان == 2) يعيد SSK3nd";
إذا كان ( مكان == 3) يعيد "rd";
أرجع "th";

حسنا, ليس الجزء الأكثر تعقيدا من البرمجة على الكوكب, صادفها عند إعادة تثبيت ماكينتي المكسورةM SK2 إنه strikes me as something the Framework may have built inMST3 but I couldnM ST4t locate itMst5AnywayM st6 given an integerM St7 this snippet will return a string with the correct ordinalMSt8

```
THIS CODE IS INCORRECT! Retained for amusement purposes only :0(
```

```
public class OrdinalNumber
    {
        public static string  GetOrdinal(int Number) 
        {
        
            try
            {
                string numStr = Number.ToString();
                // Accepts an integer, returns the ordinal suffix
                //  special case three digit numbers ending
                // with 11, 12 or 13 - ie, 111th, 112th, 113th, 211th, et al
                if (numStr.Length > 2 ) 
                {
                    int intEndNum = Convert.ToInt32(numStr.Substring(numStr.Length - 2, 2));
                    if ( intEndNum >= 11 && intEndNum <= 13 ) return "th";
                        
                }
                if ( Number >= 21 && Number <=23) 
                {
                    //  21st, 22nd, 23rd, et al
                    switch (Convert.ToInt32(numStr.Substring(numStr.Length - 1, 1))) 
                    {
                        case 1: return "st";
                        case 2: return "nd";
                        case 3:    return "rd";
                        default: return "th";
                    }
                } 
                else if(Number >=1 && Number <=3)
                {
                    //  1st to 20th
                    switch (Number) 
                    {
                        case 1: return "st";
                        case 2:    return "nd";
                        case 3:    return "rd";
                        default: return "th";
                    }
                }
                else
                {
                    return "th";
                }
            }
            catch(Exception)
            {
                return string.Empty;
            }
        }
    }
```