Categories
Dynamics NAV HOW TO Microsoft

HOW TO calculate the Day of the Year number in C/SIDE

You can calculate the Day of the Year number in C/SIDE by the difference between the date (in my example I use the current date defined by the operating system using the function TODAY) and the first day of year of the date using the CALCDATE function. You need to add 1 to the result to include the day of the date that you are using.

HOW TO calculate the Day of the Year number in C/SIDE

[sourcecode lang=”Cside”]
Number := TODAY-CALCDATE(‘<-CY>’,TODAY)+1;
[/sourcecode]

If you need it as Text you need to convert it using the FORMAT function
[sourcecode lang=”Cside”]
String := FORMAT(TODAY-CALCDATE(‘<-CY>’,TODAY)+1);
[/sourcecode]

Did my HOW TO help you? Leave a reply.

Categories
C#.NET HOW TO Microsoft VB.NET Visual Studio

HOW TO extract decimal part or integer part from a Decimal number in C# or VB.NET

Exaples to extract decimal part or integer part from a Decimal number in C# or VB.NET

VB.NET
[sourcecode lang=”VBNET”]
Dim myDecimal As Decimal = 3.7 ‘myDecimal = 3.7
Dim integer_part As Integer

integer_part = Decimal.Truncate(myDecimal) ‘integer_part = 3

integer_part = Decimal.ToInt16(myDecimal) ‘integer_part = 3
integer_part = Decimal.ToInt32(myDecimal) ‘integer_part = 3
integer_part = Decimal.ToInt64(myDecimal) ‘integer_part = 3
integer_part = Decimal.Floor(myDecimal) ‘integer_part = 3

‘Following lines cause a Round (WRONG RESULT)
Dim rounded_integer_part As Integer
rounded_integer_part = myDecimal ’rounded_integer_part = 4, result different from C#
rounded_integer_part = Decimal.Ceiling(myDecimal) ’rounded_integer_part = 4

‘Obviously decimal_part is calculated as difference
Dim decimal_part As Decimal
decimal_part = myDecimal – Decimal.Truncate(integer_part) ‘decimal_part = 0.7
[/sourcecode]

C#
[sourcecode lang=”csharp”]
Decimal myDecimal = 3.7M; //myDecimal = 3.7
int integer_part;

integer_part = (int)Decimal.Truncate(myDecimal); //integer_part = 3

integer_part = (int)Decimal.ToInt16(myDecimal); //integer_part = 3
integer_part = (int)Decimal.ToInt32(myDecimal); //integer_part = 3
integer_part = (int)Decimal.ToInt64(myDecimal); //integer_part = 3
integer_part = (int)Decimal.Floor(myDecimal); //integer_part = 3
integer_part = (int)myDecimal; //integer_part = 3, result different from VB

//Following line cause a Round (WRONG RESULT)
int rounded_integer_part = (int)Decimal.Ceiling(myDecimal); //rounded_integer_part = 4

//Obviously decimal_part is calculated as difference
Decimal decimal_part;
decimal_part = myDecimal – Decimal.Truncate(integer_part); //decimal_part = 0.7
[/sourcecode]

Did my HOW TO help you? Leave a reply.