黑色星期五是指每个月的13号和每个周的周五为同一天
代码如下:
@Test
public void test2() {
// 嵌套循环拿到年月日
for (int year = 2010; year <= 2021; year++) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
for (int month = 0; month < 12; month++) {
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, 13);
int week = calendar.get(Calendar.DAY_OF_WEEK);
if (Calendar.FRIDAY == week) {
// 日历中FIRDAY方法得到的数字是6,所以减一得到的是5
System.out.println(forMatDate(calendar) + "是黑色星期" + (week - 1));
}
}
}
}
// 自定义一个可以格式化日期的方法以便调用,日历需要转换为日期才可以格式化
private String forMatDate(Calendar calendar) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.format(calendar.getTime());
}
打印输出结果为:
输入一个字符串格式的日期,判断是不是黑色星期五!
package com.situ.problem08;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
import org.junit.Test;
/*
* 2016-05-13黑色星期5 2017-01-13黑色星期5 2017-10-13黑色星期5 2018-04-13黑色星期5
* 2018-07-13黑色星期5 2019-09-13黑色星期5 2019-12-13黑色星期5 2020-03-13黑色星期5
* 2020-11-13黑色星期5 2021-08-13黑色星期5
*/
public class BlackFriday {
@Test
public void format() {
Scanner scanner = new Scanner(System.in);
System.out.println("输入年份,格式为yyyy");
int year = scanner.nextInt();
Calendar calender = Calendar.getInstance();
calender.set(Calendar.YEAR, year);
for (int month = 0; month < 12; month++) {
calender.set(Calendar.DAY_OF_MONTH, 13);
calender.set(Calendar.MONTH, month);
int week = calender.get(Calendar.DAY_OF_WEEK);
if (Calendar.FRIDAY == week) {
System.out.println(formatDate(calender) + "是黑色星期五");
}
}
scanner.close();
}
// 自定义一个可以格式化日期的方法以便调用,日历需要转换为日期才可以格式化
private String formatDate(Calendar calender) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
return simpleDateFormat.format(calender.getTime()).toString();
}
}