Bitcoin core has a way to UNlock your wallet for a certain period. I don't think it can lock it for a certain period of time tough (walletlock hasn't got any parameters).
You could send the funds to yourself and use tx.nLockTime to lock the transaction untill a certain block??? I've never done this myself, but more info can be found here:
https://bitcointalk.org/index.php?topic=321550.0An other option is to generate a 2 of 2 multisig wallet, so the signature of your spouse/best friend is needed to spend the funds?
Just on a personal note: why do you have the urge to spend every satoshi you have? A gambling problem? In this case, it might be wise to seek some help instead of searching for a technical solution... Just my personal opinion tough, you can do whatever you want, it's your life