目录
1、不引入额外的包
2、通过日期相关API实现
两种实现
- 不引入额外的包
- 通过日期相关API实现
import java.util.Scanner;
/**
* Hello world!
*/
public class App {
public static void main(String[] args) {
// 控制台输入 年 月 日,空格隔开
Scanner in = new Scanner(System.in);
String str = in.nextLine();
String[] ymd = str.split(" ");
Integer year = Integer.valueOf(ymd[0]);
Integer month = Integer.valueOf(ymd[1]);
Integer day = Integer.valueOf(ymd[2]);
int days = getDay(year, month, day);
int weekDay = getWeekDay(year, month, day);
System.out.println(days + " " + weekDay);
}
/**
* 获取当前日期是当前年的第几天
*
* @param year 年
* @param month 月
* @param day 日
* @return
*/
static int getDay(int year, int month, int day) {
int tmp = 0;
switch (month) {
case 12:
tmp = tmp + 30;
case 11:
tmp = tmp + 31;
case 10:
tmp = tmp + 30;
case 9:
tmp = tmp + 31;
case 8:
tmp = tmp + 31;
case 7:
tmp = tmp + 30;
case 6:
tmp = tmp + 31;
case 5:
tmp = tmp + 30;
case 4:
tmp = tmp + 31;
case 3:
tmp = tmp + 28;
case 2:
tmp = tmp + 31;
case 1:
tmp = tmp + day;
}
// 判断是否闰年,且是3月以后,此时天数+1
if ((year % 400 == 0 || year % 4 == 0 && year % 100 != 0) && month >= 3) {
tmp = tmp + 1;
}
return tmp;
}
/**
* 获取当前年共多少天
*
* @param year 年
* @return
*/
static int yearAllDays(int year) {
int tmp = 365;
// 判断是否闰年
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
tmp = 366;
}
return tmp;
}
/**
* 获取当前日期是星期几
*
* @param year 年
* @param month 月
* @param day 日
* @return
*/
static int getWeekDay(int year, int month, int day) {
int tmp = 0;
for (int i = 1923; i < year; i++) {
tmp = tmp + yearAllDays(i);
}
tmp = tmp + getDay(year, month, day);
return tmp % 7;
}
}
2、通过日期相关API实现
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 控制台输入 年 月 日,空格隔开
Scanner in = new Scanner(System.in);
String str = in.nextLine();
String[] ymd = str.split(" ");
getWeekDayAndYearDayByJdk(ymd);
}
static void getWeekDayAndYearDayByJdk(String[] arr) {
String dateStr = arr[0] + "-" + arr[1] + "-" + arr[2];
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = f.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar instance = Calendar.getInstance();
instance.setTime(date);
int yearDay = instance.get(Calendar.DAY_OF_YEAR);
int weekDay = instance.get(Calendar.DAY_OF_WEEK);
System.out.println(yearDay + " " + (weekDay - 1)%6);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)