none
Как подставить корректное окончание? RRS feed

  • Вопрос

  • Приветствую!

     

    Ребята, а как можно реализовать в скриптах, чтобы подставлялось корректное окончание?

     

    Поясню. Это всем известные: "рубль, рубля, рублей...", "час, часов, часа...."

     

    Заранее благодарю,

    Александр

    12 августа 2007 г. 7:19

Ответы

  •  

    Code Snippet

     

    Function Roubles(x)

    i = Int(x) - Int(x/10)*10

    Select Case i
      Case 0 Roubles = " рублей"
      Case 1 Roubles = " рубль"
      Case 2 Roubles = " рубля"
      Case 3 Roubles = " рубля"
      Case 4 Roubles = " рубля"
      Case 5 Roubles = " рублей"
      Case 6 Roubles = " рублей"
      Case 7 Roubles = " рублей"
      Case 8 Roubles = " рублей"
      Case 9 Roubles = " рублей"
    End Select

    End Function

     

    'Пример вызова функции

    sum_rub = 1003

    WScript.Echo CStr(sum_rub) & Roubles(sum_rub)

     

     

     

    12 августа 2007 г. 9:37
    Модератор
  • Да нет, нашел ошибку. Теперь, надеюсь, правильно.

     

    Code Snippet

     

    Function Roubles(x)

    j = Int(x) - Int(x/100)*100

    If (j >= 10) And (j <= 20) Then

      Roubles = " рублей"

    Else  

      i = Int(x) - Int(x/10)*10

      Select Case i
        Case 0 Roubles = " рублей"
        Case 1 Roubles = " рубль"
        Case 2 Roubles = " рубля"
        Case 3 Roubles = " рубля"
        Case 4 Roubles = " рубля"
        Case 5 Roubles = " рублей"
        Case 6 Roubles = " рублей"
        Case 7 Roubles = " рублей"
        Case 8 Roubles = " рублей"
        Case 9 Roubles = " рублей"
      End Select

    End If

    End Function

     

    ' Пример вызова функции

    sum_rub = 1003

    WScript.Echo CStr(sum_rub) & Roubles(sum_rub)

     

     

     

     

    13 августа 2007 г. 20:05
    Модератор

Все ответы

  •  

    Code Snippet

     

    Function Roubles(x)

    i = Int(x) - Int(x/10)*10

    Select Case i
      Case 0 Roubles = " рублей"
      Case 1 Roubles = " рубль"
      Case 2 Roubles = " рубля"
      Case 3 Roubles = " рубля"
      Case 4 Roubles = " рубля"
      Case 5 Roubles = " рублей"
      Case 6 Roubles = " рублей"
      Case 7 Roubles = " рублей"
      Case 8 Roubles = " рублей"
      Case 9 Roubles = " рублей"
    End Select

    End Function

     

    'Пример вызова функции

    sum_rub = 1003

    WScript.Echo CStr(sum_rub) & Roubles(sum_rub)

     

     

     

    12 августа 2007 г. 9:37
    Модератор
  • Ваш ответ как всегда прост и гениален! ))) Спасибо!

    12 августа 2007 г. 9:46
  • Да нет, нашел ошибку. Теперь, надеюсь, правильно.

     

    Code Snippet

     

    Function Roubles(x)

    j = Int(x) - Int(x/100)*100

    If (j >= 10) And (j <= 20) Then

      Roubles = " рублей"

    Else  

      i = Int(x) - Int(x/10)*10

      Select Case i
        Case 0 Roubles = " рублей"
        Case 1 Roubles = " рубль"
        Case 2 Roubles = " рубля"
        Case 3 Roubles = " рубля"
        Case 4 Roubles = " рубля"
        Case 5 Roubles = " рублей"
        Case 6 Roubles = " рублей"
        Case 7 Roubles = " рублей"
        Case 8 Roubles = " рублей"
        Case 9 Roubles = " рублей"
      End Select

    End If

    End Function

     

    ' Пример вызова функции

    sum_rub = 1003

    WScript.Echo CStr(sum_rub) & Roubles(sum_rub)

     

     

     

     

    13 августа 2007 г. 20:05
    Модератор