Login or Sign Up to become a member!
LessThanDot Sit Logo

LessThanDot

Community Wiki

Less Than Dot is a community of passionate IT professionals and enthusiasts dedicated to sharing technical knowledge, experience, and assistance. Inside you will find reference materials, interesting technical discussions, and expert tips and commentary. Once you register for an account you will have immediate access to the forums and all past articles and commentaries.

LTD Social Sitings

Lessthandot twitter Lessthandot Linkedin Lessthandot friendfeed Lessthandot facebook Lessthandot rss

Note: Watch for social icons on posts by your favorite authors to follow their postings on these and other social sites.

Navigation

Google Ads

VB.Net: Numbers to Dutch words

From Wiki

Jump to: navigation, search
  1. Namespace Functions
  2.     ''' <summary>
  3.     '''
  4.     ''' </summary>
  5.     ''' <remarks></remarks>
  6.     Public Class NumberToDutchWords
  7.  
  8. #Region " Private members "
  9.         ''' <summary>
  10.         '''
  11.         ''' </summary>
  12.         ''' <remarks></remarks>
  13.         Dim _Value As Double
  14.         ''' <summary>
  15.         '''
  16.         ''' </summary>
  17.         ''' <remarks></remarks>
  18.         Dim _Dutch As String
  19. #End Region
  20.  
  21. #Region " Public properties "
  22.         ''' <summary>
  23.         '''
  24.         ''' </summary>
  25.         ''' <value></value>
  26.         ''' <returns></returns>
  27.         ''' <remarks></remarks>
  28.         Public Property Value() As Double
  29.             Get
  30.                 Return _Value
  31.             End Get
  32.             Set(ByVal Value As Double)
  33.                 _Value = Value
  34.                 NumbertoWords()
  35.             End Set
  36.         End Property
  37.  
  38.         ''' <summary>
  39.         '''
  40.         ''' </summary>
  41.         ''' <value></value>
  42.         ''' <returns></returns>
  43.         ''' <remarks></remarks>
  44.         Public ReadOnly Property Dutch() As String
  45.             Get
  46.                 Return _Dutch
  47.             End Get
  48.         End Property
  49. #End Region
  50.  
  51. #Region " Constructors "
  52.         ''' <summary>
  53.         '''
  54.         ''' </summary>
  55.         ''' <remarks></remarks>
  56.         Public Sub New()
  57.             _Value = 0
  58.             NumbertoWords()
  59.         End Sub
  60.  
  61.         ''' <summary>
  62.         '''
  63.         ''' </summary>
  64.         ''' <param name="Value"></param>
  65.         ''' <remarks></remarks>
  66.         Public Sub New(ByVal Value As Double)
  67.             _Value = Value
  68.             NumbertoWords()
  69.         End Sub
  70. #End Region
  71.  
  72. #Region " Private methods "
  73.         ''' <summary>
  74.         '''
  75.         ''' </summary>
  76.         ''' <remarks></remarks>
  77.         Private Sub NumbertoWords()
  78.             Dim strInwords As String
  79.             Dim dblNumberbeforecomma, dblNumberdecimals As Double
  80.             Dim intNumber(10) As Integer
  81.             Dim intTemp As Integer
  82.  
  83.             If _Value < 1000000 Then
  84.                 strInwords = ""
  85.                 dblNumberbeforecomma = Math.Floor(_Value)
  86.                 dblNumberdecimals = 100 * Math.Round(_Value - dblNumberbeforecomma, 2)
  87.                 For intTemp = 6 To 1 Step -1
  88.                     intNumber(7 - intTemp) = Convert.ToInt32(dblNumberbeforecomma) \ Convert.ToInt32((10 ^ (intTemp - 1)))
  89.                     dblNumberbeforecomma = dblNumberbeforecomma Mod (10 ^ (intTemp - 1))
  90.                 Next
  91.                 dblNumberbeforecomma = Math.Floor(_Value)
  92.                 If dblNumberbeforecomma >= 1000 Then
  93.                     If dblNumberbeforecomma >= 2000 Then
  94.                         strInwords = waarde(intNumber(1), intNumber(2), intNumber(3)).TrimStart(Convert.ToChar(" ")) & " duizend"
  95.                     Else
  96.                         strInwords = "duizend"
  97.                     End If
  98.                 End If
  99.                 strInwords &= " " & waarde(intNumber(4), intNumber(5), intNumber(6)).TrimStart(Convert.ToChar(" ")) & " euro "
  100.                 If dblNumberdecimals > 0 Then
  101.                     strInwords &= waarde(0, Convert.ToInt32(dblNumberdecimals) \ 10, Convert.ToInt32(dblNumberdecimals Mod 10)).TrimStart(Convert.ToChar(" ")) & " cent"
  102.                 End If
  103.                 _Dutch = strInwords.TrimStart(Convert.ToChar(" "))
  104.              End If
  105.         End Sub
  106.  
  107.         ''' <summary>
  108.         '''
  109.         ''' </summary>
  110.         ''' <param name="cijfer"></param>
  111.         ''' <returns></returns>
  112.         ''' <remarks></remarks>
  113.         Private Function eenheid(ByVal cijfer As Integer) As String
  114.             Dim A(10) As String
  115.  
  116.             A(1) = "een"
  117.             A(2) = "twee"
  118.             A(3) = "drie"
  119.             A(4) = "vier"
  120.             A(5) = "vijf"
  121.             A(6) = "zes"
  122.             A(7) = "zeven"
  123.             A(8) = "acht"
  124.             A(9) = "negen"
  125.  
  126.             Return A(cijfer)
  127.         End Function
  128.  
  129.         ''' <summary>
  130.         '''
  131.         ''' </summary>
  132.         ''' <param name="cijfer"></param>
  133.         ''' <returns></returns>
  134.         ''' <remarks></remarks>
  135.         Private Function tiental(ByVal cijfer As Integer) As String
  136.             Dim A(10) As String
  137.  
  138.             A(1) = "tien"
  139.             A(2) = "twintig"
  140.             A(3) = "dertig"
  141.             A(4) = "veertig"
  142.             A(5) = "vijftig"
  143.             A(6) = "zestig"
  144.             A(7) = "zeventig"
  145.             A(8) = "tachtig"
  146.             A(9) = "negentig"
  147.  
  148.             Return A(cijfer)
  149.         End Function
  150.  
  151.         ''' <summary>
  152.         '''
  153.         ''' </summary>
  154.         ''' <param name="A"></param>
  155.         ''' <param name="B"></param>
  156.         ''' <param name="C"></param>
  157.         ''' <returns></returns>
  158.         ''' <remarks></remarks>
  159.         Private Function waarde(ByVal A As Integer, ByVal B As Integer, ByVal C As Integer) As String
  160.             Dim spatieA, spatieB As String
  161.  
  162.             If B > 0 Then
  163.                 spatieA = " "
  164.             Else
  165.                 spatieA = ""
  166.             End If
  167.             If C > 0 Then
  168.                 spatieB = " "
  169.             Else
  170.                 spatieB = ""
  171.             End If
  172.             waarde = ""
  173.  
  174.             If A > 0 Then
  175.                 If A > 1 Then
  176.                     waarde = eenheid(A) & "honderd" & spatieA
  177.                 Else
  178.                     waarde &= "honderd" & spatieA
  179.                 End If
  180.             End If
  181.             If C > 0 Then
  182.                 If (B = 0 And C > 1) Then
  183.                     waarde &= eenheid(C)
  184.                 End If
  185.                 If (B = 0 And C = 1) Then
  186.                     If A = 0 Then
  187.                         waarde &= "één"
  188.                     Else
  189.                         waarde &= " en één"
  190.                     End If
  191.                 End If
  192.                 If B = 1 Then
  193.                     waarde &= spatieB
  194.                     Select Case C
  195.                         Case Is = 1
  196.                             waarde &= "elf"
  197.                         Case Is = 2
  198.                             waarde &= "twaalf"
  199.                         Case Is = 3
  200.                             waarde &= "dertien"
  201.                         Case Is = 4
  202.                             waarde &= "veertien"
  203.                         Case Is = 5
  204.                             waarde &= "vijftien"
  205.                         Case Is = 6
  206.                             waarde &= "zestien"
  207.                         Case Is = 7
  208.                             waarde &= "zeventien"
  209.                         Case Is = 8
  210.                             waarde &= "achttien"
  211.                         Case Is = 9
  212.                             waarde &= "negentien"
  213.                     End Select
  214.                 End If
  215.                 If B > 1 Then
  216.                     waarde &= eenheid(C) & "en" & tiental(B)
  217.                 End If
  218.             Else
  219.                 If B = 1 Then
  220.                     waarde &= "tien"
  221.                 End If
  222.                 If B > 1 Then
  223.                     waarde &= spatieB & tiental(B)
  224.                 End If
  225.             End If
  226.             If InStr(waarde, "eee") <> 0 Then
  227.                 Mid(waarde, (InStr(waarde, "eee")), 3) = "eeë"
  228.             End If
  229.             If InStr(waarde, "iee") <> 0 Then
  230.                 Mid(waarde, (InStr(waarde, "iee")), 3) = "ieë"
  231.             End If
  232.         End Function
  233. #End Region
  234.  
  235.     End Class
  236. End Namespace

385 Rating: 2.3/5 (4 votes cast)