One other thought with the KM macro: I have had the situation come up where I was editing a KM macro, and it simply did not execute as expected. When I created a new version of the macro from scratch and rewrote all the elements of it, it then worked. Somehow the first version got “wedged” and did not work, and I could not figure out why. This has happened to me a few times, so it might be worth a try for you.
That being said, I also use Alfred for my snippet expansions. In the cases where I need to do date calculations that are beyond what Alfred’s built in date calculation features can handle, my approach is to create a workflow using a snippet trigger. I can then attach a script in the language of my choice to generate the needed output.
For example, I frequently need a date string in the form of yyyy-mmdd where mmdd is the last day of the previous month (think bank statements). There may be a way to do that built in to Alfred but I could not figure it out (since the dd part is obviously dependent on the number of days in the previous month, taking into account leap years), so I just generated the proper date in a script instead.
You can do the same things in KM, but I remember reading somewhere a posting (I think attributed to KM’s author, but I could beg wrong) saying that KM works well for snippet expansion provided you “don’t have too many” with “too many” being unclear to me as an exact amount.
Either way, both utilities will do the job for you. As a general rule I decide between KM and Alfred based on whether the functionality of what I am doing is primarily based on a script I am writing (use Alfred) or more suited to the building blocks provided by KM (especially the macro palettes which I use extensively).