What are the differences of the time sharing and multiprogramming?

Time-sharing is an approach to interactive computing in which a single computer is used to provide apparently simultaneous interactive general-purpose computing to multiple users by sharing processor time. So basically, time sharing is for multi-user computer systems. Multiprogramming is A form of processing in which a computer holds more than one program in memory and works on them in round-robin fashion that is, by sharing out the processor's time so that each program receives some attention some of the time. This way of working is in contrast to using the processor to run one program at a time.