WordPress managing dates that change in text regularly

You could, hypothetically, use placeholders in the content of a page (or a post), and then use the the_content filter to update the placeholders on the fly.

For example, the content of your page would be something like this:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

First date of semester: ##START_OF_SEMESTER_LONG##
First date of semester (short): ##START_OF_SEMESTER_SHORT##

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Then you would filter it like this when the page is loaded.

// I'm assuming $start_of_semester is a Unix timestamp,
// stored as an option, or post_meta, or anywhere you want.
add_filter( 'the_content', 'wpse404081_set_dates' );
/**
 * Sets the appropriate dates in the page content.
 *
 * @param  string $content The page content.
 * @return string          The filtered page content.
 */   
function wpse404081_set_dates( $content ) {
    $start_of_semester = get_option( 'start_of_semester' ); // for example.
    $content = str_replace(
        array( '##START_OF_SEMESTER_LONG##', '##START_OF_SEMESTER_SHORT##' ),
        array( date( 'F j, Y', $start_of_semester ), date( 'm/d/Y', $start_of_semester ),
        $content
    );
    return $content;
}

For information on how to set up the ‘Start of Semester’ option (aka “setting”), check out WordPress’ Settings API.