The bad new here is that you are going to have a difficult time with this. As far as I know, the only way to get the local policy in effect from the local machine is to invoke the LsaPolicy APIs. This is much uglier than what you are doing (although possible via p/invoke I assume) and I don't have a sample.
The other bad thing is the your domain example will only work if GPO password policy has not been applied to the OU where the domain computer object is located (which is very common). If there is a password policy GPO, the expiration interval could be different. So, if you need a really general solution for calculating the expiration interval, it gets really complex.
ADAM really should have a calculated attribute to get the effective maxPwdAge (it must know this to do the calc so why can't it tell you this?) but it currently doesn't. This is one of my pet peeves with the product.
I believe (but am not positive) that if you call the LsaPolicy APIs to get the value, you'll get the effective interval from either local machine policy or from the domain. This might end up being the better way to go.
My overall recommendation is to avoid pwd expiration with ADAM users. It tends to produce a poor user experience and is hard to deal with (as you are seeing). However, if you have a customer who wants or needs this, it can be difficult to ignore.
Another way to do this is to integrate expiration at the application level and capture a password that is too old during the authentication event (where you have some UI already). It may be possible to have them change their password right there. You wouldn't use ADAM pwd expiration for this (you'd disable ADAM-enforced password expiration) but you could then have any policy and behavior you want. Just a thought.
Sorry for the gloomy response. :)