The approach I usually take is to create a bitmap of the segments in memory, and write what is to be displayed to that bitmap.
If the microcontroller you are using has an LCD controller, then that bitmap would be part of the peripheral. If you are rolling your own, the bitmap would likely be accessed by a periodic interrupt service routine (ISR) to periodically write the data to the pins (you must keep the DC component of the voltage on the LCD 'glass' to a very low level or you will damage the LCD by electrochemical action (50mV is frequently set as a limit, but read your LCD datasheet). Your LCD controller code (or LCD controller hardware) will control each segment on/off depending on the bits in the bitmap, so if the bit is '1' for that particular segment, it will see the waveform specified in your LCD datasheet.
Note that you've chosen a 1/3 bias 4-common LCD rather than a static drive (fewer connections) so the waveforms get a bit complicated and you'll need a resistor divider if you don't have a dedicated LCD controller peripheral. Here's a Microchip app note this subject, which can easily be applied to almost any microcontroller.
The thing that I am not getting is how to generate the segment value for a particular digit.
I typically do something like this (in C)
This is mapped to the display segments directly, segment 'A' = LSB all the say up to segment 'G' = bit 6, (and decimal point is the MSB). You could use another byte or two for the annunciators such as 'TIME'.
Then a digit 'n' can be written into the i'th digit of the bitmapped buffer by..
When the buffer is all nice and pretty, with the final data you want your user to see, it can be copied into the display bitmap, so it's analogous to a frame buffer in a bitmapped graphic display.
You probably don't want to write intermediate data to your display bitmap because it could make the display appear erratic and less attractive.
Generating the correct digits in each position for (say) a 2's complement binary number in decimal with an implied decimal point and leading zero suppression is an interesting programming exercise, and I'll leave that for you. It has nothing to do with electronics- the code would be the same for an LED display. You have to do something like convert binary to unpacked BCD and format it. The code above will convert each unpacked BCD digit to a 7-segment bitmap.
The segments in digits of 7-segment displays are numbered as follows:
Bit 0 is mapped to segment A, bit 1 to B and so on.