How to burn tokens based on time

I'm looking for suggestions on how to approach the burn of a token. Most of our smart contract is done but the main function we are looking to solve is how to schedule burn an allocation of token over time.

For example, when the smart contract is created there will be 1,000,000 tokens. We would like to burn 500,000 token over ~100 month time period. The only input factor for the burn schedule is time.

What are your thoughts on how to solve this?

You can write a time-dependent burn function that is triggered in other functions like transfer, i.e., everytime a transfer function is called, it will check if the time requirement is met and then behave accordingly.

thank you for your recommendation. I understand. Will this method allow us to burn X% per month until the balance is 0 or will it burn the entire balance in one action?

It's totally a design decision. Technically, the method described above is fully capable of achieving the desired effect/result.

Hey is there anyway you can help me customize the profile pic for the coin and how to control and burn supply?