Oddly Even, Positively Negative
Python 2, 23 bytes



lambda n:~n/2+n%2*(n|2)


Odd inputs give roughly n/2, even ones roughly -n/2. So, I started with -n/2+n%2*n and tweaked from there. 

Try it online!