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 },
var totalTaxableAmount = CalculateUkTaxableAmount(payments);
payments.ForEach(payment =>
Console.WriteLine(string.Format("Total UK taxable amount is: {0} GBP",
totalTaxableAmount[i].ToString("F", CultureInfo.InvariantCulture),i++)));
public static List<decimal> CalculateUkTaxableAmount(List<Payment> payments)
List<decimal> totalTaxableAmount = new List<decimal>();
foreach (Payment payment in payments)
var totalAmount = payment.TotalAmount;
var ukWorkdayCount = payment.UkWorkdayCount;
var foreignWorkdayCount = payment.ForeignWorkdayCount;
decimal ukWorkdayDecimal = ukWorkdayCount;
decimal foreignWorkdayDecimal = foreignWorkdayCount;
totalTaxableAmount.Add(totalAmount * (ukWorkdayDecimal / (ukWorkdayDecimal + foreignWorkdayDecimal)));
return totalTaxableAmount;
public decimal TotalAmount { get; set; }
public int UkWorkdayCount { get; set; }
public int ForeignWorkdayCount { get; set; }