counting 7 segment display

i need some guidance on the programming and circuitry on producing a two digit 7 segment led that counts everytime a signal is recieved from the digital outputs of an aruino uno.i am aware i may need a 4036 or 555 ic for the multiplexing. i am somewhat new to programming so any help would be appreciated on the arduino code or the ic coding.

Why so complicated? Just drive it from Arduino directly.

still lost man that sketch was too much for me. got ony any simpler?

No, it doesn’t get any simpler. Having the arduino control the segments directly like that is as simple as it gets.
Next step would be to start adding additional components between the Arduino and the LEDs.
That could be a shift register and 2 74LS47 type decode chips.
Or two shift registers.
Or a shift register and 2 transistors for multiplexin.
Or a MAX7221 8 digit, seven segment display chip.
Or … way too many other ways to get there.

All of which take different software ways to get there.

the inputs for the 7 segments i understand but im not sure about the output circuitry i need something to help me clarify it(sorry about my beginner arduino status) maybe siing the code or another example would help

This may not match the schematic, but something along these lines.
Arrays to define the pins used
Array to define the number font
read a switch - if closed, update the digit for that switch

// pins for the digits, 0,1 reserved for serial
byte digit1Array[7] = {2,3,4,5,6,7,8};
byte digit2Array[7] = {9,10,11,12,13,14,15};
// segmentst light up, 0 = on
byte digitDisplay[10] = {B00000000, B00000110, B010101111, B01100110, B01101101, B011111101, B00000111, B01111111, B011001111;}

// switch pins
byte sw1 = 16;
byte sw2 = 17;
byte sw3 = 18;
byte sw4 = 19;

byte digit1 = 0;
byte digit2 = 0;

updated = 0;

void setup(){
for (int x = 0; x<7; x=x+1){
pinMode(digit1Array[x], OUTPUT);
pinMode(digit2Array[x], OUTPUT);
digitalWrite (digit1Array[x], HIGH);
digitalWrite (digit2Array[x], HIGH);
}
pinMode (sw1,INPUT_PULLUP); // internal pullup, reads high unless switch is closed
pinMode (sw2,INPUT_PULLUP);
pinMode (sw3,INPUT_PULLUP);
pinMode (sw4,INPUT_PULLUP);

Serial.begin(9600);
}
void loop(){
if (digitalRead (sw1) == 0){
updated = 1;
digit1 = digit1+1;
  if (digit1 ==10){digit1 = 0;} 
for (int x = 0; x<7; x=x+1){
digitalWrite(digit1Array[x], (code here to pick off the High/low for a bit from digitDisplay[digit] for the segment pin - thinking  about that still) );
}
}
if (digitalRead (sw2) == 0){
updated = 1;
digit2 = digit2+1;
  if (digit2 ==10){digit2 = 0;} 
  for (int x = 0; x<7; x=x+1){
  digitalWrite(digit2Array[x], (code here to pick off the High/low for a bit from digitDisplay[digit] for the segment pin - thinking about that still) );
  }
 }
if (updated == 1){
updated = 0;
delay(100);} // button debounce delay, there are better ways to do this also
}

Maybe this:
change

for (int x = 0; x<7; x=x+1){
digitalWrite(digit1Array[x], (code here to pick off the High/low for a bit from digitDisplay[digit] for the segment pin - thinking  about that still) );
}

to

for (int x = 1; x<0x80; x=x<1){  
// mask bit for the segments: 0x01 (A), 0x02 (B), 0x04 (C), 0x08 (D), 0x10 (E), 0x20 (F), 0x40 (G)
  if ( digitDisplay[digit] & x)  ==0 ){segment = 0;}
else {segment = 1;}
digitalWrite(digit1Array[x], segment);
}

My shot at what the code should be - compiles okay, have to wire up to see if it actually works

// sketch to drive 2 common anode 7-segment displays from arduino

// pins for the digits, 0,1 reserved for serial
byte digit1Array[7] = {
  2,3,4,5,6,7,8}; //a,b,c,d,e,f,g
byte digit2Array[7] = {
  9,10,11,12,13,14,15}; //a,b,c,d,e,f,g
// segments to light up, 0 = on
byte digitDisplay[10] = {
  B01000000, //0, 0 = on with pulldowns
  B01111001, //1
  B00100100, //2
  B00110000, //3
  B00011001, //4
  B00100100, //5
  B00000011, //6
  B01111000, //7
  B00000000, //8
  B00011000, //9
};

// switch pins
byte sw1 = 16;
byte sw2 = 17;
byte sw3 = 18;
byte sw4 = 19;

byte digit1 = 0;
byte digit2 = 0;

byte updated = 0;
byte segment = 0;

void setup(){
  for (int x = 0; x<7; x=x+1){
    pinMode(digit1Array[x], OUTPUT);
    pinMode(digit2Array[x], OUTPUT);
    digitalWrite (digit1Array[x], HIGH);
    digitalWrite (digit2Array[x], HIGH);
  }
  pinMode (sw1,INPUT_PULLUP); // internal pullup, reads high unless switch is closed
  pinMode (sw2,INPUT_PULLUP);
  pinMode (sw3,INPUT_PULLUP);
  pinMode (sw4,INPUT_PULLUP);

  Serial.begin(9600);
}
void loop(){
  if (digitalRead (sw1) == 0){
    updated = 1;
    digit1 = digit1+1;
    if (digit1 ==10){
      digit1 = 0;
    } 
    for (int x = 1; x<0x80; x=x<1){  
      // mask bit for the segments: 0x01 (A), 0x02 (B), 0x04 (C), 0x08 (D), 0x10 (E), 0x20 (F), 0x40 (G)
      if ( digitDisplay[digit1] & x  ==0 ){
        segment = 0;
      }
      else {
        segment = 1;
      }
      digitalWrite(digit1Array[x], segment);
    }
  }
  if (digitalRead (sw2) == 0){
    updated = 1;
    digit2 = digit2+1;
    if (digit2 ==10){
      digit2 = 0;
    } 
    for (int x = 1; x<0x80; x=x<1){  
      // mask bit for the segments: 0x01 (A), 0x02 (B), 0x04 (C), 0x08 (D), 0x10 (E), 0x20 (F), 0x40 (G)
      if ( digitDisplay[digit2] & x  ==0 ){
        segment = 0;
      }
      else {
        segment = 1;
      }
      digitalWrite(digit2Array[x], segment);
    }
  }
  if (updated == 1){
    updated = 0;
    delay(100);
  } // button debounce delay, there are better ways to do this also
}