A user may want to create a version with custom dates, for example a version that has data from 2019 that spans January15-May 30 and another model January 15 - August 15. Can a user create a version based on custom dates?
You can set a date range for editing versions so that users can only edit data during the period specified. The options for setting the Edit From and Edit To dates are dependent upon the calendar type set for the model in the Model Calendar tab in Model Settings > Time.
In the Versions tab in Model Settings, select the version that requires editing to be restricted. Use the lists in the Edit From and Edit To fields to specify a date range for editing the version (you may have to scroll across to the right of the screen to see the Edit From and Edit To columns).
If you go with the solution that @prabhu provided, please be very careful in that you can blow up your model because every module using the out of the box Version list will have ALL of the versions. Currently, there is not a way to subset them. Now, you could use a custom list for Versions and mimic the native functionality, but again, this needs to be decided by use case.
I would recommend reading David Smith's article on Versions and Custom Versions: Link