黑马程序员 Java中根据YYYY-MM-DD格式的日期计算为星期几的两种实现方式
来源:互联网 发布:淘宝订单物流查询 编辑:程序博客网 时间:2024/06/06 03:36
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
一、利用Calendar类实现日期到星期的转换
import java.util.Calendar;import java.util.Scanner;import java.util.regex.Pattern;public class Time{public static void main(String[] args){//输入日期System.out.print("请按“yyyy-MM-dd”的格式输入一个日期:");Scanner scan = new Scanner(System.in);String s = scan.nextLine();//使用正则表达式拆分日期String sPattern = "[-]+";Pattern p1 = Pattern.compile(sPattern);String[] arrWords = p1.split(s);int year = Integer.parseInt(arrWords[0]);int month = Integer.parseInt(arrWords[1]);int day = Integer.parseInt(arrWords[2]);//使用Calendar类Calendar c1 = Calendar.getInstance();c1.set(year, month - 1, day);int iWeek = (int)c1.get(Calendar.DAY_OF_WEEK);//输出这一天是星期几int temp = iWeek -1;if (temp == 1)System.out.println(s + "是星期一");if (temp == 2)System.out.println(s + "是星期二");if (temp == 3)System.out.println(s + "是星期三");if (temp == 4)System.out.println(s + "是星期四");if (temp == 5)System.out.println(s + "是星期五");if (temp == 6)System.out.println(s + "是星期六");if (temp == 0)System.out.println(s + "是星期日");}}
二、选定一个参考时间点,然后根据输入日期与参考时间点的相差天数推断是星期几
import java.util.Scanner;import java.util.regex.Pattern;public class Test9{//闰年每个月的天数static int M[] = {31,29,31,30,31,30,31,31,30,31,30,31};//非闰年每个月的天数static int M1[] = {31,28,31,30,31,30,31,31,30,31,30,31};static int year = 0;static int month = 0;static int day = 0;static int sum_day = 0;static int th_day = 0;//判断是否为闰年public static boolean check(int year){if (year % 400 == 0)return true;else if (year % 4 == 0 && year % 100 != 0)return true;elsereturn false;}//算出输入的年份距离2007-01-01的总天数public static void comCurYear(int year, int flag){int year_flag = 0;if (check(year))year_flag = 1;int k;//year >= 2007if (0 == flag){for (k = 1; k <= 12; k++){if (k < month){if (1 == year_flag){sum_day += M[k - 1];th_day += M[k - 1];}else{sum_day += M1[k - 1];th_day += M1[k - 1];}}else if (k == month){sum_day += day;th_day += day;}else if (k > month){break;}}}//2007年之前else{for (k = 12; k >= 1; k--){if (month < k){if (year_flag == 1)sum_day += M[k - 1];elsesum_day +=M1[k - 1];}else if (k == month){if (year_flag == 1)sum_day += M[k - 1] - day;elsesum_day +=M1[k - 1] - day;}else{break;}}//2007年之前需要做一个处理int temp = sum_day % 7;sum_day = sum_day - temp + 7 - temp;//计算是一年中的第几天for (k = 1; k < 12; k++){if (k < month){if (1 == year_flag)th_day += M[k - 1];elseth_day += M1[k - 1];}else if (k == month){if (1 == year_flag)th_day += day;elseth_day += day;}else if (k > month){break;}}}return;}public static void main(String[] args){//输入日期System.out.print("请按“yyyy-MM-dd”的格式输入一个日期:");Scanner scan = new Scanner(System.in);String s = scan.nextLine();//使用正则表达式拆分日期String sPattern = "[-]+";Pattern p1 = Pattern.compile(sPattern);String[] arrWords = p1.split(s);year = Integer.parseInt(arrWords[0]);month = Integer.parseInt(arrWords[1]);day = Integer.parseInt(arrWords[2]);//2007-01-01是星期一//2007年之后if (year > 2007){int i;for (i = 2007; i < year; i++){if (check(i))sum_day += 366;elsesum_day += 365;}comCurYear(year, 0);}else if (2007 == year){comCurYear(year, 0);}else{int i;for (i = 2006; i > year; i--){if (check(i))sum_day += 366;elsesum_day += 365;}comCurYear(year, 1);}//输出这一天是星期几int temp = sum_day % 7;if (temp == 1)System.out.println(s + "是星期一" + ",是一年中的第" + th_day + "天");if (temp == 2)System.out.println(s + "是星期二" + ",是一年中的第" + th_day + "天");if (temp == 3)System.out.println(s + "是星期三" + ",是一年中的第" + th_day + "天");if (temp == 4)System.out.println(s + "是星期四" + ",是一年中的第" + th_day + "天");if (temp == 5)System.out.println(s + "是星期五" + ",是一年中的第" + th_day + "天");if (temp == 6)System.out.println(s + "是星期六" + ",是一年中的第" + th_day + "天");if (temp == 0)System.out.println(s + "是星期日" + ",是一年中的第" + th_day + "天");}}
0 0
- 黑马程序员 Java中根据YYYY-MM-DD格式的日期计算为星期几的两种实现方式
- maximo 中修改日期的格式为yyyy-mm-dd
- 黑马程序员---------------------编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期, * 程序计算这一天是星期几,并且计算出是一年中的第几天
- 黑马程序员—编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期, *程序计算这一天是星期几,并且计算出是一年中的第几天。 */
- 黑马程序员 测试题:编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天
- java中如何将String类型的日期格式为yyyyMMdd转化为date类型的yyyy-MM-dd格式
- java中日期yyyy-MM-dd格式转为星期几
- js 时间计算(加减天数、返回当前时间后一个星期的日期,返回格式yyyy-MM-dd)
- 在js中定义yyyy-MM-dd格式的日期
- Java日期格式转换-yyyy-MM-dd HH:mm:ss转换为yyyy-MM-dd
- 在Gridview中设置日期字段的显示格式为yyyy-MM-dd
- java利用正则表达式判断输入的日期格式为yyyy/MM/dd
- Java获取格式为yyyy-MM-dd的Date时间
- 通过Java,以三种方式获取输入日期(格式:YYYY-MM-DD)所在月份的最后一天
- 日期格式yyyy-MM-dd HH:mm:ss的解释
- 校验日期格式为yyyy-MM-dd
- java实现将毫秒数转化为yyyy-MM-dd格式的数据
- 黑马程序员----编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期
- xmppframework开发基础
- Parcelable与Serializable
- Mysql复制表结构、表数据
- 全栈工程师就是一棵歪脖子树
- MFC线程创建以及利用线程显示字符
- 黑马程序员 Java中根据YYYY-MM-DD格式的日期计算为星期几的两种实现方式
- POJ2186 Popular Cows 【裸缩环+Gabow算法强连通分量分解再建图】
- A. Queue on Bus Stop
- JDK1.5版本以后出现的新特性
- Android:用Handler实现异步处理功能
- spring bean作用域
- 求解:JQueryValidationEngine不支持双验证
- UI引擎开发系列(二) 事件分发处理
- 第一讲:数据库系统