Pro Rate Calculation (Rental And Service Cost)

0 comments

Problem : How does pro rate work for rental.
*Note : Its different from all company.
There are 6 Condition will hit when u do pro rate calculation 

1. Rental Start <= Charge Start, Rental Start < Rental End < Charge End.
2. Rental End> Rental Start < Charge End., Rental End >= Charge End.
3. Rental Start <= Charge Start, Rental End >= Charge End.
4. Rental Start > Charge Start, Rental End < Charge End.
5. Rental Start < Charge Start, Rental End = Charge End.
6. Rental Start = Rental End.

Int32 DropdownMonth = 8;
Int32 DropdownYear = 2013;
int32 DaysActualPerMonth = 0;
int32 DaysPerMonth = 0;

// Eg. August bill September Rental
Int32 DaysInMonth = DateTime.DaysInMonth(DropdownYear, DropdownMonth + 1);
DateTime FirstDayOfTheMonth = GetFirstDayOfMonth(DropdownYear, DropdownMonth + 1);
DateTime LastDayOfTheMonth = GetLastDayOfMonth(DropdownYear, DropdownMonth + 1);

DateTime RentalCommenceDate = RentalCostCommenceDate; //Get Rental Commence Date
DateTime RentalDueDate = RentalCostDueDate; // Get Rental Due Date

//ParameterSetDateTime;  Equal to previous generation date. May bill invoice date = Invoice date (June Date)
if (RentalCommenceDate <= FirstDayOfTheMonth && RentalDueDate > RentalCommenceDate && RentalDueDate < LastDayOfTheMonth)
{
    //Return Partial Rental Amount (A)
    DaysActualPerMonth = DaysInMonth;
    DaysPerMonth = GetDaysBetweenDates(FirstDayOfTheMonth, RentalDueDate) + 1;
}
else if (RentalCommenceDate > FirstDayOfTheMonth && RentalCommenceDate < LastDayOfTheMonth && RentalDueDate >= LastDayOfTheMonth)
{
    //Return Partial Rental Amount (B)
    DaysActualPerMonth = DaysInMonth;
    DaysPerMonth = GetDaysBetweenDates(RentalCommenceDate, LastDayOfTheMonth) + 1;
}
else if (RentalCommenceDate <= FirstDayOfTheMonth && RentalDueDate >= LastDayOfTheMonth)
{
    //Return Full Rental Amount (C)
    DaysActualPerMonth = DaysInMonth;
    DaysPerMonth = DaysInMonth;
}
else if (RentalCommenceDate > FirstDayOfTheMonth && RentalDueDate > RentalCommenceDate && RentalDueDate < LastDayOfTheMonth)
{
    //Return Partial Rental Amount (D)
    DaysActualPerMonth = DaysInMonth;
    DaysPerMonth = GetDaysBetweenDates(RentalCommenceDate, RentalDueDate) + 1;
}
else if (RentalCommenceDate < FirstDayOfTheMonth && RentalDueDate > RentalCommenceDate && RentalDueDate == LastDayOfTheMonth)
{
    //Return Partial Rental Amount (E)
    DaysActualPerMonth = DaysInMonth;
    DaysPerMonth = 1;
}
else if (RentalCommenceDate == RentalDueDate)
{
    //Return Partial Rental Amount = One Day Rental (F)
    DaysActualPerMonth = DaysInMonth;
    DaysPerMonth = 1;
}
else
{
    //Nothing
}

C# Set DateTime Variables Time to Default Time (12:00:00:00)

0 comments

To Standardize the Time for all DateTime Value.

String NewRentalCommenceDate = RentalCommenceDate.ToShortDateString();
RentalCommenceDate = Convert.ToDateTime(NewRentalCommenceDate);
String NewRentalDueDate = RentalDueDate.ToShortDateString();
RentalDueDate = Convert.ToDateTime(NewRentalDueDate);

C# Get 1 Day of The Month And Last Day of The Month

0 comments

Problem : Getting first and last day of the month.

Solution :

 // Get Last Day Of The Month
public static DateTime GetLastDayOfMonth(int year, int month)
{
    return new DateTime(year, month, DateTime.DaysInMonth(year, month));
}

// Get 1 Day Of The Month
public static DateTime GetFirstDayOfMonth(int year, int month)
{
    return new DateTime(year, month, 1);
}

C# Get Duration of Days Between 2 Dates

0 comments

Problem : How to get duration of days between two dates.

Solution :

// Get Date Between Two Dates
private int GetDaysBetweenDates(DateTime firstDate, DateTime secondDate)
{
      return secondDate.Subtract(firstDate).Days;
}


C# Get Week Number In Year

0 comments

Problem : How do I get number of week per year.

Solution :

// Get Num Of Week Per Year
 public static int Iso8601WeekNumber(DateTime dt)
{
     System.Globalization.CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;
     int weekNumOnMonth = ci.Calendar.GetWeekOfYear(dt, ci.DateTimeFormat.CalendarWeekRule, ci.DateTimeFormat.FirstDayOfWeek);
     return weekNumOnMonth;
}

Reference:
using System.Globalization;

C# Get Week Number In Month

0 comments

Problem : How do I get number of week per month for the particular date?

Solution :

// Get Num of Week Per Month
public static int GetWeekInMonth(DateTime date)
{
    DateTime tempdate = date.AddDays(-date.Day + 1);
    CultureInfo ciCurr = CultureInfo.CurrentCulture;
    int weekNumStart = ciCurr.Calendar.GetWeekOfYear(tempdate, CalendarWeekRule.FirstFourDayWeek, ciCurr.DateTimeFormat.FirstDayOfWeek);
    int weekNum = ciCurr.Calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, ciCurr.DateTimeFormat.FirstDayOfWeek);
    return weekNum - weekNumStart + 1;
}

Reference :
using System.Globalization;