-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Hacker Rank]: Day of the Programmer partial doc moved as Markdown
- Loading branch information
Showing
2 changed files
with
117 additions
and
106 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
# [Day of the Programmer](https://www.hackerrank.com/challenges/day-of-the-programmer) | ||
|
||
Difficulty: #easy | ||
Category: #implementation | ||
|
||
Marie invented a [Time Machine](https://en.wikipedia.org/wiki/Time_machine) | ||
and wants to test it by time-traveling to visit Russia on the | ||
[Day of the Programmer](https://en.wikipedia.org/wiki/Day_of_the_Programmer) | ||
(the 256th day of the year) during a year in the inclusive range from 1700 | ||
to 2700. | ||
|
||
From 1700 to 1917, Russia's official calendar was the | ||
[Julian calendar](https://en.wikipedia.org/wiki/Julian_calendar); since 1919 | ||
they used the | ||
[Gregorian calendar](https://en.wikipedia.org/wiki/Gregorian_calendar) | ||
system. The transition from the Julian to Gregorian calendar system occurred | ||
in 1918, when the next day after January 31st was February 14th. This means | ||
that in 1918, February 14th was the 32nd day of the year in Russia. | ||
|
||
In both calendar systems, February is the only month with a variable amount | ||
of days; it has 29 days during a leap year, and 28 days during all other | ||
years. In the Julian calendar, leap years are divisible by 4; in the | ||
Gregorian calendar, leap years are either of the following: | ||
|
||
- Divisible by 400. | ||
- Divisible by 4 and not divisible by 100. | ||
|
||
Given a year, $ y $, find the date of the 256th day of that year according to | ||
the official Russian calendar during that year. Then print it in the format | ||
$ dd.mm.yyyy $, where $ dd $ is the two-digit day, mm is the two-digit month, and | ||
$ yyyy $ is $ y $. | ||
|
||
For example, the given $ year = 1984 $. 1984 is divisible by 4, so it is a leap | ||
year. The 256th day of a leap year after 1918 is September 12, so the answer | ||
is $ 12.09.1984 $. | ||
|
||
## Function Description | ||
|
||
Complete the dayOfProgrammer function in the editor below. It should return | ||
a string representing the date of the 256th day of the year given. | ||
|
||
dayOfProgrammer has the following parameter(s): | ||
|
||
- year: an integer | ||
|
||
## Input Format | ||
|
||
A single integer denoting year $ y $. | ||
|
||
## Constraints | ||
|
||
- $ 1700 < y < 2700 $ | ||
|
||
## Output Format | ||
|
||
Print the full date of Day of the Programmer during year y in the format | ||
dd.mm.yyyy, where dd is the two-digit day, mm is the two-digit month, and | ||
yyyy is y. | ||
|
||
## Sample Input 0 | ||
|
||
```text | ||
2017 | ||
``` | ||
|
||
## Sample Output 0 | ||
|
||
```text | ||
13.09.2017 | ||
``` | ||
|
||
## Explanation 0 | ||
|
||
In the year $ y = 2017 $, January has 31 days, February has 28 days, March has | ||
31 days, April has 30 days, May has 31 days, June has 30 days, July has 31 | ||
days, and August has 31 days. When we sum the total number of days in the | ||
first eight months, we get $ 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 = 243 $. | ||
Day of the Programmer is the 256th day, so then calculate $ 256 - 243 = 13 $ | ||
to determine that it falls on day 13 of the 9th month (September). We then | ||
print the full date in the specified format, which is $ 13.09.2017 $. | ||
|
||
## Sample Input 1 | ||
|
||
```text | ||
2016 | ||
``` | ||
|
||
## Sample Output 1 | ||
|
||
```text | ||
12.09.2016 | ||
``` | ||
|
||
Year $ y = 2016 $ is a leap year, so February has 29 days but all the other | ||
months have the same number of days as in 2017. When we sum the total | ||
number of days in the first eight months, we get | ||
$ 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 = 244 $. | ||
Day of the Programmer is the 256th day, so then | ||
calculate $ 256 - 244 = 12 $ to determine that it falls on day 12 of the 9th | ||
month (September). We then print the full date in the specified format, | ||
which is $ 12.09.2016 $. | ||
|
||
## Sample Input 2 | ||
|
||
```text | ||
1800 | ||
``` | ||
|
||
## Sample Output 2 | ||
|
||
```text | ||
12.09.1800 | ||
``` | ||
|
||
## Explanation 2 | ||
|
||
Since 1800 is leap year as per Julian calendar. Day lies on 12 September. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters