Dizzy integer enumeration Your challenge today is to output a given term of a sequence enumerating all of the integers. The sequence is as follows: If we have a 0-indexed function generating the sequence f(n) and ceil(x) is the ceiling function, then f(0) = 0; abs(f(n)) = ceil(n/2); sign(f(n)) is positive when n and ceil(n/2) are either both even or both odd.

To help understand this sequence, the first few terms are as follows: 0 1 -1 -2 2 3 -3 -4 4 5 -5 -6 6 7 -7...

Your task is to write a program to that takes an integer n and outputs the nth term of the sequence. Input may be 0 or 1-indexed only.

Test cases (0-indexed):

0  =&gt;  0
1  =&gt;  1
2  =&gt; -1
3  =&gt; -2
4  =&gt;  2
5  =&gt;  3


This is code-golf, fewest bytes wins!
SOGL V0.12, 8 6 bytes
I».»⌡±

Try it Here! or try the first couple numbers (changed a bit so it'd work)
0-indexed.
Explanation:
I       increment the input
 »      floor divide by 2
  .     push the original input
   »    floor divide by 2
    ⌡   that many times
     ±    negate

Or simpler:
(input + 1) // 2 negated input // 2 times
        I     »     ±      .     »    ⌡