Question: Your solution should have a minimum of: 1 . Jd class. a . Default constructor that initializes to now ( accurate to a second )

Your solution should have a minimum of:
1. Jd class.
a. Default constructor that initializes to now (accurate to a second).
b. A literal constructor that takes a real number.
c. All seven relational operators.
i.<=>
ii.==
iii. !=
iv.<
v.<=
vi.>
vii. >=
d. Methods/operators for adding/subtracting: seconds, minutes, hours, days, weeks, years (orbital).
e. Difference operator.
2. Gregorian class.
a. Default constructor that initializes to now (accurate to a second).
b. Gregorian date constructor (no time part).
c. Gregorian date constructor (with time initialization as well).
d. Methods/operators for adding/subtracting:
i. seconds, minutes, hours, days, weeks (these might be shared with Jd class).
ii.+(years). Whole numbers only. The result should be the same day in the new year. The
exception is a starting date on February 29 on a leap year and the ending date is a non-
leap year. In this case, you would use the largest day in that month (February 28).
iii. +(month) Whole numbers only. If you add a month the day should be exactly the same as
the original day. The exception is if the day in the starting month is greater than the last
day in the ending month. In this case, you would use the largest day in that month.
(January 31,2024 plus one month is February 29,2024)
e. A to_string method that returns a string containing the Gregorian date and 12 hour time of day
(e.g.Friday, September 272013 CE,11:05:03 am).
f. Several supporting functions will help with the above functionality. They may include the
following functions: is_gregorian_leap_year(), days_in_month(), jd_to_hms(), hms_to_days(),
month_name().
3. Your code should pass all the boost unit tests provided to cover the new operations. Your
functions/classes should be written to pass the boost unit tests provided. If the boost unit tests fail,
those operations will not be awarded full marks. You shall not modify the boost unit tests provided as a
starting point. Passing the boost unit tests does not guarantee that you will earn all marks for that
function if the function is not done properly
4. Create a Julian class equivalent to the Gregorian class you have just created.
5. Create the Islamic conversion algorithms to convert from the Jd class to Islamic and from Islamic to Jd.
To test your algorithm, you must pass the ut_Khronos_13_islamic_concepts.cpp and
ut_Khronos_14_islamic_conv.cpp file.
6. Create the rest of the Islamic class equivalent to the Gregorian class that you have created. You should
pass the ut_Khronos_15_ islamic _class.cpp file
7. Create the Hebrew conversion algorithms to convert from the Jd class to Hebrew and from Islamic to Jd.
To test your algorithm, you must pass the ut_Khronos_16_hebrew_concepts.cpp and
ut_Khronos_17_hebrew_conv.cpp file.
8. Create the rest of the Hebrew class equivalent to the Gregorian class that you have created. You should
pass the ut_Khronos_18_ hebrew _class.cpp file
9. Create the Vulcan conversion algorithms along with the rest of the Vulcan class equivalent to the
Gregorian class that you have created. You should pass all three ut_Khronos_19 to 21 files.
10. You must set the test phases that you would like us to mark in the file ut_Khronos.hpp. Test phases set
to true will be graded

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!