PTA 7-5 打印双休日

7-5 打印双休日

分数 20

全屏浏览

切换布局

作者 温彦

单位 山东科技大学

输入年份和月份,打印当月所有双休日日期,打印格式为:“2018-06-16”

输入格式:

年份和月份

输出格式:

双休日日期

输入样例:

在这里给出一组输入。例如:

2018 6

输出样例:

在这里给出相应的输出。例如:

2018-06-02
2018-06-03
2018-06-09
2018-06-10
2018-06-16
2018-06-17
2018-06-23
2018-06-24
2018-06-30

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

import java.text.SimpleDateFormat;
import java.util.*;
public class Main{
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int years=scan.nextInt();
		int month=scan.nextInt();
        //输入我们需要求的年份和月
		int days=0;
		switch(month) {
		case 1:case 3:case 5:case 7:case 8:case 10:case 12:{
			days=31;break;
		}
		case 4:case 6:case 9:case 11:{
			days=30;break;
		}
		case 2:
		if((years%400==0)||(years%100!=0&&years%4==0)) {
			days=29;break;
		}
		else {
			days=28;break;
		}
		}
        //这里判断月份并赋值给days判断这个月有多少天;
		Calendar c1 = Calendar.getInstance();
        //这里我们构造一个Calendar类型,方便我们后续工作,(注:如果不做任何变化,那么它将表示的是当前的日期;)
		for(int i=1;i<=days;i++) {
			c1.set(years, month-1, i);
        //这里就是把这一年的这一个月里的每一天赋值给我们所构造的c1,可以理解为c1就已经表示这一天了,比如根据我们所输入的数据,第一个日期也就是2018-6-1;然后我们直接判断这一天是不是周末;(注:Calendar是从零开始就算月份的,因此我们需要在我们要求的月份基础上减一);
			if(c1.get(c1.DAY_OF_WEEK)==1||c1.get(c1.DAY_OF_WEEK)==7) {
            //这里的c1.DAY_OF_WEEK就代表这一天是星期几,利用这个方法程序会自动判断出这是星期几,值得注意的是,这里一周的开始是从周天开始的;利用get进行判断;
				System.out.printf("%04d-%02d-%02d\n",years,month,i);
        //这里利用printf进行格式化输出,类似于C语言的输出模式;
			}
	}
	}
}

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值