using System.Collections.Generic;
using System.Globalization;
public static void Main()
var payments = new List<Payment>
new Payment { TotalAmount = 3000m, UkWorkdayCount = 15, ForeignWorkdayCount = 5 },
new Payment { TotalAmount = 1281.50m, UkWorkdayCount = 3, ForeignWorkdayCount = 18 },
new Payment { TotalAmount = 250m, UkWorkdayCount = 31, ForeignWorkdayCount = 0 },
new Payment { TotalAmount = 50.63m, UkWorkdayCount = 0, ForeignWorkdayCount = 4 },
payments.ForEach(payments =>
Console.WriteLine(string.Format("Total UK taxable amount is: {0} GBP",
CalculateUkTaxableAmount(payments).ToString("F", CultureInfo.InvariantCulture))));
public static decimal CalculateUkTaxableAmount(Payment payment)
decimal totalTaxableAmount = 0;
var totalAmount = payment.TotalAmount;
var ukWorkdayCount = payment.UkWorkdayCount;
var foreignWorkdayCount = payment.ForeignWorkdayCount;
decimal ukWorkdayDecimal = ukWorkdayCount;
decimal foreignWorkdayDecimal = foreignWorkdayCount;
totalTaxableAmount = totalAmount * (ukWorkdayDecimal / (ukWorkdayDecimal + foreignWorkdayDecimal));
return totalTaxableAmount;
public decimal TotalAmount { get; set; }
public int UkWorkdayCount { get; set; }
public int ForeignWorkdayCount { get; set; }