Sha256: 0b3c22745e65bfa7bf48a2740e04c6829bedfe3f4730ab034b4569923f3b1b48
Contents?: true
Size: 960 Bytes
Versions: 1
Compression:
Stored size: 960 Bytes
Contents
# frozen_string_literal: true module TaxCalculator module Federal # 2021 BRACKETS = { :married => { 10.0 => 20_550.00, 12.0 => 83_550.00, 22.0 => 178_150.00, 24.0 => 340_100.00, 32.0 => 431_900.00, 35.0 => 647_850.00, 37.0 => :remaining }.freeze }.freeze def self.taxes_for(income) previous_amount = 0 taxes_owed = 0 BRACKETS[:married].each_pair do |bracket, amount| if amount == :remaining taxes_owed = taxes_owed + ((income - previous_amount) * (bracket / 100)) break end if income < amount taxes_owed = taxes_owed + ((income - previous_amount) * (bracket / 100)) break end taxes_owed = taxes_owed + ((amount - previous_amount) * (bracket / 100)) previous_amount = amount break if amount == income end taxes_owed.round(2) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tax_calculator-0.4.0 | lib/tax_calculator/federal.rb |