I have one date like 12/05/2012 now i would like to change that format in to simple string.
for ex.
string newdate = new string();
newdate = "12/05/2012";
DateTime Bdate = DateTime.ParseExact(Newdate, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
now my BDate is DateTime
ie. BDate= 2012/05/12
now i want to do something like
if my Bdate is 12/05/2012 so i want a string which is similar like "Twelve May two thousand twelve"
How can i do this?
Please help me...
Thanks in advance....
Copy the dates that are in the cells that you want to convert. Copy the text and paste it into Notepad. Return to Excel and pick the cells into which you wish to paste the dates. Go to Home –> Number and pick the Text format with the cells chosen (from the drop down).
You'll need to look at each date part and use a function to get the written equivalent. I've included a class below that converts integers to written text, and extended it to support DateTime
conversion as well:
public static class WrittenNumerics
{
static readonly string[] ones = new string[] { "", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" };
static readonly string[] teens = new string[] { "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen" };
static readonly string[] tens = new string[] { "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" };
static readonly string[] thousandsGroups = { "", " Thousand", " Million", " Billion" };
private static string FriendlyInteger(int n, string leftDigits, int thousands)
{
if (n == 0)
return leftDigits;
string friendlyInt = leftDigits;
if (friendlyInt.Length > 0)
friendlyInt += " ";
if (n < 10)
friendlyInt += ones[n];
else if (n < 20)
friendlyInt += teens[n - 10];
else if (n < 100)
friendlyInt += FriendlyInteger(n % 10, tens[n / 10 - 2], 0);
else if (n < 1000)
friendlyInt += FriendlyInteger(n % 100, (ones[n / 100] + " Hundred"), 0);
else
friendlyInt += FriendlyInteger(n % 1000, FriendlyInteger(n / 1000, "", thousands + 1), 0);
return friendlyInt + thousandsGroups[thousands];
}
public static string DateToWritten(DateTime date)
{
return string.Format("{0} {1} {2}", IntegerToWritten(date.Day), date.ToString("MMMM"), IntegerToWritten(date.Year));
}
public static string IntegerToWritten(int n)
{
if (n == 0)
return "Zero";
else if (n < 0)
return "Negative " + IntegerToWritten(-n);
return FriendlyInteger(n, "", 0);
}
}
Disclaimer: Basic functionality courtesy of @Wedge
Using this class, just call the DateToWritten method:
var output = WrittenNumerics.DateToWritten(DateTime.Today);
The output of the above is: Twelve May Two Thousand Twelve
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With