Ngày của lập trình viên (Day of the Programmer)
Marie đã phát minh ra cỗ máy thời gian và muốn thử nghiệm nó bằng cách du hành thời gian đến thăm Nga vào Ngày lập trình viên (ngày thứ 256 của năm) trong một năm trong phạm vi bao gồm từ 1700 đến 2700
từ 1700 đến 1917 Lịch chính thức của Nga là lịch Julian; kể từ khi 1919 họ đã sử dụng hệ thống lịch Gregorian. Sự chuyển đổi từ hệ thống lịch Julian sang Gregorian xảy ra trong 1918 . khi ngày tiếp theo sau tháng một ngày 31 là tháng hai ngày 14. Điều này có nghĩa là trong năm 1918 Tháng hai là 14 là ngày thứ 32 của năm theo lịch Nga.
Trong cả hệ thống lịch, tháng 2 là số lượng ngày thay đổi, nó có 29 ngày trong một năm nhuận, và 28 ngày trong tất cả các năm khác. Trong lịch Julian, năm nhuận chia hết cho 4. trong lịch Gregorian, năm nhuận là một trong những điều sau đây:
Chia hết cho 400
Chia hết cho 4 nhưng không Chia hết cho 100
Cho một năm y tìm ngày thứ 256 ngày của năm đó theo lịch chính thức của Nga trong năm đó. Sau đó in nó ở định dạng dd.mm.yyyy, trong đó dd là ngày có hai chữ số, mm là tháng có hai chữ số và yyyy là y
Ví dụ, đã cho year = 1984 . chia hết cho 4 vì vậy nó là một năm nhuận Các 256 ngày của một năm nhuận sau 1918 là ngày 12 tháng 9, vì vậy câu trả lời là 12.09.1984
Mô tả chức năng
Hoàn thành chức năng dayOfProgrammer trong trình chỉnh sửa bên dưới. Nó sẽ trả về một chuỗi đại diện cho ngày của 256 ngày trong năm đưa ra.
dayOfProgrammer có (các) tham số sau:
năm: một số nguyên
Định dạng đầu vào
Một số nguyên biểu thị năm y
Những ràng buộc
1700 <= y <= 2700
Định dạng đầu ra
In toàn bộ ngày của Lập trình viên trong năm y trong định dạng dd.mm.yyyy, trong đó dd là ngày có hai chữ số, mm là tháng có hai chữ số và yyyy là y
Nhập mẫu 0
2017
Kết quả mẫu 0
13.9.2017
Giải thích 0
Trong năm y = 2017 Tháng giêng có 31 ngày Tháng hai có 28 ngày Tháng ba có 31 ngày Tháng tư có 30 ngày . Thâng 5 có 31 ngày. Tháng sáu có 30 ngày . Tháng 7 có 31 ngày và tháng 8 có 31 ngày. Khi chúng tôi tổng hợp tổng số ngày trong tám tháng đầu tiên, chúng tôi nhận được 31 + 28 + 31 + 30 + 31 + 31 = 243 Ngày lập trình viên là ngày thứ 256 vậy thì tính 256 243 = 13 để xác định rằng nó rơi vào ngày 13 của 9 tháng (tháng 9). Sau đó chúng tôi sẽ in ngày đầy đủ theo định dạng được chỉ định, đó là ngày 13/9/2017.
Đầu vào mẫu 1
2016
Kết quả mẫu 1
12.09.2016
Giải thích 1
Năm y = 2016 là một năm nhuận, vì vậy tháng hai có 29 ngày nhưng tất cả các tháng khác có cùng số ngày như trong 2017. Khi chúng tôi tổng hợp tổng số ngày trong tám tháng đầu tiên, chúng tôi nhận được 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 = 244 Ngày lập trình viên là 256. vậy thì tính 256 - 244 = 12 để xác định rằng nó rơi vào ngày 12 của 9 tháng (tháng 9) Sau đó chúng tôi sẽ in ngày đầy đủ theo định dạng được chỉ định, đó là ngày 12/9/2016.
Đầu vào mẫu 1
2016
Kết quả mẫu 1
12.09.2016
Giải thích 1
Năm y=2016 là một năm nhuận, vì vậy tháng hai có 29 ngày ngày nhưng tất cả các tháng khác có cùng số ngày như trong 2017. Khi chúng tôi tổng hợp tổng số ngày trong tám tháng đầu tiên, chúng tôi nhận được 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 = 244 Ngày lập trình viên là 256. vậy thì tính 256 - 244 = 12 . để xác định rằng nó rơi vào ngày 12 của 9 tháng (Tháng Chín). Sau đó chúng tôi sẽ in ngày đầy đủ theo định dạng được chỉ định, đó là ngày 12/9/2016
Đầu vào mẫu 2
1800
Kết quả mẫu 2
12,09.1800
Giải thích 2
Vì năm 1800 là năm nhuận. Ngày nằm vào ngày 12 tháng 9.
php
từ 1700 đến 1917 Lịch chính thức của Nga là lịch Julian; kể từ khi 1919 họ đã sử dụng hệ thống lịch Gregorian. Sự chuyển đổi từ hệ thống lịch Julian sang Gregorian xảy ra trong 1918 . khi ngày tiếp theo sau tháng một ngày 31 là tháng hai ngày 14. Điều này có nghĩa là trong năm 1918 Tháng hai là 14 là ngày thứ 32 của năm theo lịch Nga.
Trong cả hệ thống lịch, tháng 2 là số lượng ngày thay đổi, nó có 29 ngày trong một năm nhuận, và 28 ngày trong tất cả các năm khác. Trong lịch Julian, năm nhuận chia hết cho 4. trong lịch Gregorian, năm nhuận là một trong những điều sau đây:
Chia hết cho 400
Chia hết cho 4 nhưng không Chia hết cho 100
Cho một năm y tìm ngày thứ 256 ngày của năm đó theo lịch chính thức của Nga trong năm đó. Sau đó in nó ở định dạng dd.mm.yyyy, trong đó dd là ngày có hai chữ số, mm là tháng có hai chữ số và yyyy là y
Ví dụ, đã cho year = 1984 . chia hết cho 4 vì vậy nó là một năm nhuận Các 256 ngày của một năm nhuận sau 1918 là ngày 12 tháng 9, vì vậy câu trả lời là 12.09.1984
Mô tả chức năng
Hoàn thành chức năng dayOfProgrammer trong trình chỉnh sửa bên dưới. Nó sẽ trả về một chuỗi đại diện cho ngày của 256 ngày trong năm đưa ra.
dayOfProgrammer có (các) tham số sau:
năm: một số nguyên
Định dạng đầu vào
Một số nguyên biểu thị năm y
Những ràng buộc
1700 <= y <= 2700
Định dạng đầu ra
In toàn bộ ngày của Lập trình viên trong năm y trong định dạng dd.mm.yyyy, trong đó dd là ngày có hai chữ số, mm là tháng có hai chữ số và yyyy là y
Nhập mẫu 0
2017
Kết quả mẫu 0
13.9.2017
Giải thích 0
Trong năm y = 2017 Tháng giêng có 31 ngày Tháng hai có 28 ngày Tháng ba có 31 ngày Tháng tư có 30 ngày . Thâng 5 có 31 ngày. Tháng sáu có 30 ngày . Tháng 7 có 31 ngày và tháng 8 có 31 ngày. Khi chúng tôi tổng hợp tổng số ngày trong tám tháng đầu tiên, chúng tôi nhận được 31 + 28 + 31 + 30 + 31 + 31 = 243 Ngày lập trình viên là ngày thứ 256 vậy thì tính 256 243 = 13 để xác định rằng nó rơi vào ngày 13 của 9 tháng (tháng 9). Sau đó chúng tôi sẽ in ngày đầy đủ theo định dạng được chỉ định, đó là ngày 13/9/2017.
Đầu vào mẫu 1
2016
Kết quả mẫu 1
12.09.2016
Giải thích 1
Năm y = 2016 là một năm nhuận, vì vậy tháng hai có 29 ngày nhưng tất cả các tháng khác có cùng số ngày như trong 2017. Khi chúng tôi tổng hợp tổng số ngày trong tám tháng đầu tiên, chúng tôi nhận được 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 = 244 Ngày lập trình viên là 256. vậy thì tính 256 - 244 = 12 để xác định rằng nó rơi vào ngày 12 của 9 tháng (tháng 9) Sau đó chúng tôi sẽ in ngày đầy đủ theo định dạng được chỉ định, đó là ngày 12/9/2016.
Đầu vào mẫu 1
2016
Kết quả mẫu 1
12.09.2016
Giải thích 1
Năm y=2016 là một năm nhuận, vì vậy tháng hai có 29 ngày ngày nhưng tất cả các tháng khác có cùng số ngày như trong 2017. Khi chúng tôi tổng hợp tổng số ngày trong tám tháng đầu tiên, chúng tôi nhận được 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 = 244 Ngày lập trình viên là 256. vậy thì tính 256 - 244 = 12 . để xác định rằng nó rơi vào ngày 12 của 9 tháng (Tháng Chín). Sau đó chúng tôi sẽ in ngày đầy đủ theo định dạng được chỉ định, đó là ngày 12/9/2016
Đầu vào mẫu 2
1800
Kết quả mẫu 2
12,09.1800
Giải thích 2
Vì năm 1800 là năm nhuận. Ngày nằm vào ngày 12 tháng 9.
php
<?php
// Complete the dayOfProgrammer function below.
function dayOfProgrammer($year) {
if($year <1918 && $year%400!=0 && $year%100==0 ) {
$date=date_create($year.'-01-01');
date_add($date,date_interval_create_from_date_string("254 days"));
return date_format($date,"d.m.Y");
} else if($year == 1918) {
$date=date_create($year.'-01-01');
date_add($date,date_interval_create_from_date_string("268 days"));
return date_format($date,"d.m.Y");
} else {
$date=date_create($year.'-01-01');
date_add($date,date_interval_create_from_date_string("255 days"));
return date_format($date,"d.m.Y");
}
}
$fptr = fopen(getenv("OUTPUT_PATH"), "w");
$year = intval(trim(fgets(STDIN)));
$result = dayOfProgrammer($year);
fwrite($fptr, $result . "\n");
fclose($fptr);
Comments
Post a Comment