import java.text.ParseException
import java.text.ParsePosition
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
import java.util.Scanner
public class Test9 {
/**
* 第9题:编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
*
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
Scanner scan = new Scanner(System.in)
System.out.println("请输入日期(格式为yyyy-mm-dd):")
String input = scan.next()
DateFormat format = DateFormat.getDateInstance()
Date date = format.parse(input)
Calendar ca = Calendar.getInstance()
ca.setTime(date)//设置输入时间
int xingqi = ca.get(Calendar.DAY_OF_WEEK)//获得输入日期是星期几?
System.out.println("您输入的日期是:"+input)
System.out.println("这一天是"+ GetWeek(xingqi))
System.out.println("这一天是这年的第"+ ca.get(Calendar.DAY_OF_YEAR)+"天")
}
public static String GetWeek(int i)
{
if(i<0||i>7){
System.out.println(i+"没有对应的星期")
}
String[] weeks={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}
return weeks[i]
}
}
import java.util.Calendarpublic class Main {
public static void main(String[] args) {
System.out.println(countWorkDay(2018, 6))
}
/**
* 获取指定年月有多少个工作日)
*
* @param year
* @param month
* @return
*/
public static int countWorkDay(int year, int month) {
Calendar c = Calendar.getInstance()
c.set(Calendar.YEAR, year)
// 月份是从0开始计算,所以需要减1
c.set(Calendar.MONTH, month - 1)
// 当月最后一天的日期
int max = c.getActualMaximum(Calendar.DAY_OF_MONTH)
// 开始日期为1号
int start = 1
// 计数
int count = 0
while (start <= max) {
c.set(Calendar.DAY_OF_MONTH, start)
if (isWorkDay(c)) {
count++
}
start++
}
return count
}
// 判断是否工作日(未排除法定节假日,由于涉及到农历节日,处理很麻烦)
public static boolean isWorkDay(Calendar c) {
// 获取星期,1~7,其中1代表星期日,2代表星期一 ... 7代表星期六
int week = c.get(Calendar.DAY_OF_WEEK)
// 不是周六和周日的都认为是工作日
return week != Calendar.SUNDAY && week != Calendar.SATURDAY
}
}