输入年月日求第几天.c 729 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <stdio.h>
  2. int isLeapYear(int year) {
  3. if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
  4. return 1; // ÊÇÈòÄê
  5. } else {
  6. return 0; // ²»ÊÇÈòÄê
  7. }
  8. }
  9. int getDayOfYear(int year, int month, int day) {
  10. int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  11. int dayOfYear = 0;
  12. int i;
  13. for (i = 1; i < month; i++) {
  14. dayOfYear += daysInMonth[i];
  15. }
  16. dayOfYear += day;
  17. if (isLeapYear(year) && month > 2) {
  18. dayOfYear++;
  19. }
  20. return dayOfYear;
  21. }
  22. int main() {
  23. int year, month, day;
  24. scanf("%d %d %d", &year, &month, &day);
  25. int dayOfYear = getDayOfYear(year, month, day);
  26. printf("%d\n", dayOfYear);
  27. return 0;
  28. }