This calculator will give you the upper bound of the size of a transaction with specific characteristics. The size could be a few bytes smaller due to signature randomness, but it's unpredictable and you should err on the side of caution to avoid creating transactions that don't get relayed due to paying fees below the standard minimum rate.
If you want to understand how the calculation gets broken down, check out the explanation on the Bitcoin Optech Calculator
Which size should you use for calculating fee estimates? Estimates should be in satoshis per virtual byte.
The Bitcoin Transaction Size Calculator repository can be found at https://github.com/jlopp/bitcoin-transaction-size-calculator
Twitter Bootstrap: http://getbootstrap.com/