If you don't need to track inventory (seats) for each show to automatically prevent overbooking, then you can simply configure a product using Variants for the date/time and price selection. Your Variants configuration lines would look like this:
Jan15-A-3,18,,,3pm on January 15,General Admission: $18,
Jan15-S-3,15,,,3pm on January 15,Senior/Student/Child: $15,
Jan22-A-3,18,,,3pm on January 22,General Admission: $18,
Jan22-S-3,15,,,3pm on January 22,Senior/Student/Child: $15,
Jan23-A-3,18,,,3pm on January 23,General Admission: $18,
Jan23-S-3,15,,,3pm on January 23,Senior/Student/Child: $15,
Jan14-A-7,18,,,7pm on January 14,General Admission: $18,
Jan14-S-7,15,,,7pm on January 14,Senior/Student/Child: $15,
Jan15-A-7,18,,,7pm on January 15,General Admission: $18,
Jan15-S-7,15,,,7pm on January 15,Senior/Student/Child: $15,
Jan20-A-7,18,,,7pm on January 20,General Admission: $18,
Jan20-S-7,15,,,7pm on January 20,Senior/Student/Child: $15,
Jan21-A-7,18,,,7pm on January 21,General Admission: $18,
Jan21-S-7,15,,,7pm on January 21,Senior/Student/Child: $15,
Jan22-A-7,18,,,7pm on January 22,General Admission: $18,
Jan22-S-7,15,,,7pm on January 22,Senior/Student/Child: $15,
If a show gets sold out or when advance ticket sales are closed, you would simply edit the product to delete the lines for that date/time, so buyers who try to select that show would see a message saying it was not available (if you also replace the cart button code after editing Variants, that show would not even appear available to pick). You can download and print a list of buyers before each show to provide to your doorman or will-call window.
If you did need to track inventory or issue assigned-seat numbers for each show, then you'd need to set up a separate product for each show, and either set up yet another product for each show's discounted admission or just have buyers use a discount code to get their special rate.