使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天

题目:使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天

习题来源:慕课

#include <stdio.h>
int main()
{
	/* 定义需要计算的日期 */
	int year = 2008;
	int month= 8;
	int day = 8;

	int sum = 0;
	int month_2,i;
	if (year % 400 == 0 || (year % 4 == 0 && year % 100 !=0))
		month_2 = 29;
	else
		month_2 = 28;


	for (i = 1; i<month; i++)
		switch (i)
	{
		case 2: sum += month_2;
			break;
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12: sum+= 31;
			 break;
		default: sum += 30;
	}


	sum += day;
	printf("%d年%d月%d日这一天是%d年的第%d天", year, month, day, year, sum);

	getchar();
	return 0;
}


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用switch语句实现的代码: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入份:"); int year = scanner.nextInt(); System.out.print("请输入份:"); int month = scanner.nextInt(); System.out.print("请输入期:"); int day = scanner.nextInt(); // 计算是这一的第多少天 int dayOfYear = 0; switch (month) { case 1: dayOfYear = day; break; case 2: dayOfYear = 31 + day; break; case 3: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 60 + day; } else { dayOfYear = 59 + day; } break; case 4: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 91 + day; } else { dayOfYear = 90 + day; } break; case 5: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 121 + day; } else { dayOfYear = 120 + day; } break; case 6: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 152 + day; } else { dayOfYear = 151 + day; } break; case 7: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 182 + day; } else { dayOfYear = 181 + day; } break; case 8: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 213 + day; } else { dayOfYear = 212 + day; } break; case 9: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 244 + day; } else { dayOfYear = 243 + day; } break; case 10: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 274 + day; } else { dayOfYear = 273 + day; } break; case 11: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 305 + day; } else { dayOfYear = 304 + day; } break; case 12: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { dayOfYear = 335 + day; } else { dayOfYear = 334 + day; } break; default: System.out.println("输入的份不合法!"); return; } System.out.println(year + "" + month + "" + day + "是这一的第" + dayOfYear + "天。"); } } ``` 在上面的代码,我们使用switch语句根据输入的份来计算是这一的第多少天。注意,这里需要考虑闰的情况。如果是闰,2份有29天,否则只有28天。其他份的天数与平相同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值