This is a 2-bit counter. 2-bit counters normally can count 4 numbers: 0, 1, 2, 3. However, this circuit counts up to 2 and resets at 3. This can be scaled by adding more D flip-flops and setting the And gate at the location you want the count to stop at. You can also set a starting number in a similar fashion. This can be modified to a synchronous 2-bit counter using JK flip flops.
Multiple variations of a 3-bit gray code up counter.
JK -> D -> D using NAND -> Decoder to Display
EDIT: Added BCD-to-7-Segment Sub Circuit
A way in which the JK flip-flop can be made into a D flip-flop and vise versa.