Wednesday, February 24, 2010

How to Convert Numerics/Digits into Words using C# .NET?



Hi All,
I came into thinking mode of having a system in where i enter "Numeric" values and get converted into "Words" within a single click using .NET framework.
For eg: 20,212 to " Twenty Thousand Two hundred Twelve" .
I googled and found the solution.
Below is the code (It is a C# Windows Application)


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Numeric;

namespace TestApplication
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{


}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = changeToWords(textBox1.Text, false);
}

public String changeNumericToWords(double numb)
{
String num = numb.ToString();
return changeToWords(num, false);
}
public String changeCurrencyToWords(String numb)
{
return changeToWords(numb, true);
}
public String changeNumericToWords(String numb)
{
return changeToWords(numb, false);
}
public String changeCurrencyToWords(double numb)
{
return changeToWords(numb.ToString(), true);
}
private String changeToWords(String numb, bool isCurrency)
{
String val = "", wholeNo = numb, points = "", andStr = "", pointStr = "";
String endStr = (isCurrency) ? ("Only") : ("");
try
{
int decimalPlace = numb.IndexOf(".");
if (decimalPlace > 0)
{
wholeNo = numb.Substring(0, decimalPlace);
points = numb.Substring(decimalPlace + 1);
if (Convert.ToInt32(points) > 0)
{
andStr = (isCurrency) ? ("and") : ("point");// just to separate whole numbers from points/cents
endStr = (isCurrency) ? ("Cents " + endStr) : ("");
pointStr = translateCents(points);
}
}
val = String.Format("{0} {1}{2} {3}", translateWholeNumber(wholeNo).Trim(), andStr, pointStr, endStr);
}
catch { ;}
return val;
}
private String translateWholeNumber(String number)
{
string word = "";
try
{
bool beginsZero = false;//tests for 0XX
bool isDone = false;//test if already translated
double dblAmt = (Convert.ToDouble(number));
//if ((dblAmt > 0) && number.StartsWith("0"))
if (dblAmt > 0)
{//test for zero or digit zero in a nuemric
beginsZero = number.StartsWith("0");
int numDigits = number.Length;
int pos = 0;//store digit grouping
String place = "";//digit grouping name:hundres,thousand,etc...
switch (numDigits)
{
case 1://ones' range
word = ones(number);
isDone = true;
break;
case 2://tens' range
word = tens(number);
isDone = true;
break;
case 3://hundreds' range
pos = (numDigits % 3) + 1;
place = " Hundred ";
break;
case 4://thousands' range
case 5:
case 6:
pos = (numDigits % 4) + 1;
place = " Thousand ";
break;
case 7://millions' range
case 8:
case 9:
pos = (numDigits % 7) + 1;
place = " Million ";
break;
case 10://Billions's range
pos = (numDigits % 10) + 1;
place = " Billion ";
break;
//add extra case options for anything above Billion...
default:
isDone = true;
break;
}
if (!isDone)
{//if transalation is not done, continue...(Recursion comes in now!!)
word = translateWholeNumber(number.Substring(0, pos)) + place + translateWholeNumber(number.Substring(pos));
//check for trailing zeros
if (beginsZero) word = " and " + word.Trim();
}
//ignore digit grouping names
if (word.Trim().Equals(place.Trim())) word = "";
}
}
catch { ;}
return word.Trim();
}
private String tens(String digit)
{
int digt = Convert.ToInt32(digit);
String name = null;
switch (digt)
{
case 10:
name = "Ten";
break;
case 11:
name = "Eleven";
break;
case 12:
name = "Twelve";
break;
case 13:
name = "Thirteen";
break;
case 14:
name = "Fourteen";
break;
case 15:
name = "Fifteen";
break;
case 16:
name = "Sixteen";
break;
case 17:
name = "Seventeen";
break;
case 18:
name = "Eighteen";
break;
case 19:
name = "Nineteen";
break;
case 20:
name = "Twenty";
break;
case 30:
name = "Thirty";
break;
case 40:
name = "Fourty";
break;
case 50:
name = "Fifty";
break;
case 60:
name = "Sixty";
break;
case 70:
name = "Seventy";
break;
case 80:
name = "Eighty";
break;
case 90:
name = "Ninety";
break;
default:
if (digt > 0)
{
name = tens(digit.Substring(0, 1) + "0") + " " + ones(digit.Substring(1));
}
break;
}
return name;
}
private String ones(String digit)
{
int digt = Convert.ToInt32(digit);
String name = "";
switch (digt)
{
case 1:
name = "One";
break;
case 2:
name = "Two";
break;
case 3:
name = "Three";
break;
case 4:
name = "Four";
break;
case 5:
name = "Five";
break;
case 6:
name = "Six";
break;
case 7:
name = "Seven";
break;
case 8:
name = "Eight";
break;
case 9:
name = "Nine";
break;
}
return name;
}
private String translateCents(String cents)
{
String cts = "", digit = "", engOne = "";
for (int i = 0; i < digit =" cents[i].ToString();" engone = "Zero" engone =" ones(digit);">


below is the screen Shot :






Thanks,
Nitin Sharma

How to know that your machine/system is 64 bit capable?

Hi All,


If you want to know all about your PC machine hardware insights,then this post is for you.


I came across to this tool when i was in need of installing Sharepoint 2010 but need to check that my machine was 64 bit capable or not...and my mentor found this tool on Google :)






Download the Download version 1.53 32-bit (.zip, no install, english) if your machine is 32 bit and you want to check that is it 64 bit capable?




Also running on .exe it display hardware insights like Graphics,ram(its slots),processor etc etc...



I really found it useful.


Thanks,

Nitin Sharma


Tuesday, February 9, 2010

Business Calendar with different event colors- Color coded Calendar in Sharepoint

Hey Everyone,
One requirement occured in our Sharepoint Project was : a Business Calendar with different colors with different events.After googling i came across a wonderful tool which does everything which i need.Moreover it can be customised too....

The tool can be downloaded from here
The source where i found was the author's Blog


It was wondeful..and i got everything that i need for my Sharepoint Project.

Thanks,
Nitin Sharma

Monday, February 8, 2010

Color Picker Tool for MOSS 2007/Sharepoint

Hello,
I found a wonderful Color Picker tool for MOSS 2007.It is awesome tool.You can download it for free from here

Thanks,
Nitin Sharma

How to find the Size of Database File and Log File

Hi all,
I just went through Pinal Dave's Blog Today and found a very simple script for finding out the Database File Size and the Size of the Log file.Here it how it goes :

SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name, (size*8)/1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'AdventureWorks'
GO

For detailed post you can visit here


Thanks Pinal for such a wonderful script..



Thanks ,

Nitin Sharma