利用Java计算某个日期是星期几_java

话不多说,下面来直接看示例代码

具体代码:

DayOfWeek4Birthday.java

package com.gua;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.io.*;
import static java.lang.System.out;

/**
 * Created by 2gua on 2014/9/27.
 * DayOfWeek4Birthday:看看你查询的具体日子是星期几,
 *           比如,查询谁谁的“生日对应是星期几”。
 */

public class DayOfWeek4Birthday {
  private String[] date; //保存输入数据:年数、几月、几号。

  //计算输入的日期数据对应的星期几。
  private void caculateData() {
    GregorianCalendar gc = new GregorianCalendar();
    final char[] day_of_week = {'日','一','二','三','四','五','六'};
    int year = gc.get(Calendar.YEAR); //从当前年算起。
    char week;

    for(int i = year; i<= year + Integer.valueOf(date[0]) - 1; i++) {
      gc.set(i, Integer.valueOf(date[1]) - 1, Integer.valueOf(date[2]));

      week = day_of_week[gc.get(Calendar.DAY_OF_WEEK) - 1];

      out.println(i + "年" + date[1] + "月" + date[2] + "号是星期" + week + "。");
    }
  }

  //输入日期数据。
  private void inputData() {
    InputStreamReader is = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(is);

    try {
      out.print("请输入年份范围和日期,格式:年数 几月 几号(5 9 15),回车结束:");
      String in = br.readLine();
      date   = in.split(" ");
      out.println("输入结果:" + date[0] + "个年数," + date[1] + "月" + date[2] + "号。");
    }
    catch(Exception e) {
      out.println("啊哦,运行出错咯-_-。sorry!");
    } finally {
      try {
        br.close();
        is.close();
      } catch (IOException e) {
        out.println("IO出错咯-_-。sorry!");
      }
    }
  }

  public static void main(String[] args) {
    DayOfWeek4Birthday dayOfWeek4Birthday = new DayOfWeek4Birthday();

    dayOfWeek4Birthday.inputData();
    dayOfWeek4Birthday.caculateData();
  }
}

运行,比如想看从今年算起5年内,每年的9月15号是星期几。

结果如下所示:

请输入年份范围和日期,格式:年数 几月 几号(5 9 15),回车结束:5 9 15
输入结果:5个年数,9月15号。
2014年9月15号是星期一。
2015年9月15号是星期二。
2016年9月15号是星期四。
2017年9月15号是星期五。
2018年9月15号是星期六。

Process finished with exit code 0

记得用完流要关闭。

以上是JDK 6的做法,在JDK 7及JDK 8中可以使用automatic resource management(ARM)新特性,重构inputData()方法:

//输入日期数据。
private void inputData() {
  try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
    out.print("请输入年份范围和日期,格式:年数 几月 几号(5 9 15),回车结束:");
    String in = br.readLine();
    date   = in.split(" ");
    out.println("输入结果:" + date[0] + "个年数," + date[1] + "月" + date[2] + "号。");
  }
  catch(Exception e) {
    out.println("啊哦,运行出错咯-_-。sorry!");
  }
}

当然,记得要把模块语言等级相应设置为JDK 7或JDK 8,JDK 6及以下是不会通过的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Java能有所帮助,如果有疑问大家可以留言交流。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java计算日期是星期几、根据日期计算星期几、java判断日期是星期几、c根据日期计算星期几、java获取日期是星期几,以便于您获取更多的相关知识。

时间: 2024-08-02 12:13:50

利用Java计算某个日期是星期几_java的相关文章

计算给定日期所在星期的第2天(星期日为第一天)sql语句

计算给定日期所在星期的第2天(星期日为第一天) declare @date  datetime set @date= getdate() --思路:当前日期+星期一(每周的第2天)与当前日期的差的天数 --datepart(weekday,date)的返回值与@@datefirst相关 set datefirst 7 -- 或者设置为美国英语set language us_english; (星期日为第一天) select dateadd(day,2-datepart(weekday,@date

java计算时间日期间隔程序

计算时间差 **/  代码如下 复制代码     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");     String systemTime = sdf .format(new Date()).toString();     将截取到的时间字符串转化为时间格式的字符串 **/     Date begin=sdf.parse(2008-03-28 11:55:30);     Date end =

java获取昨天日期字符串的方法_java

本文实例讲述了java获取昨天日期字符串的方法.分享给大家供大家参考,具体如下: import java.text.SimpleDateFormat; import java.util.Date; public class Test { /** * 获取昨天的日期字符串 * * @param nowDate * 当前日期的字符串 * @return */ public static String getLastDayInfo(String nowDate) { String yesterday

Java定时任务:利用java Timer类实现定时执行任务的功能_java

一.概述 在java中实现定时执行任务的功能,主要用到两个类,Timer和TimerTask类.其中Timer是用来在一个后台线程按指定的计划来执行指定的任务. TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务,具体要执行的代码写在TimerTask需要被实现的run方法中. 二.先看一个最简单的例子 我们通过代码来说明 import java.text.SimpleDateFormat; import java.util.Date; import java.util.T

java 计算某日期 多少天后的日期

问题描述 我现在有一日期 ,不是当前的日期,是一个不定日期(比如:2008-10-5) 用java 来求取:加上或者减去 几天后的日期 ? 解决方案 给你一段代码,你研究一下:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;public class Datetest {/** * * @par

java学习:日期的运算代码_java

复制代码 代码如下: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class HelloWorld {     public static void main(String[] args) {         //指定时间输出格式         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh

JAVA格式化时间日期的简单实例_java

复制代码 代码如下: import java.util.Date;import java.text.DateFormat; /*** 格式化时间类* DateFormat.FULL = 0* DateFormat.DEFAULT = 2* DateFormat.LONG = 1* DateFormat.MEDIUM = 2* DateFormat.SHORT = 3* @author    Michael * @version   1.0, 2007/03/09*/ public class T

java计算自幂数和水仙花数_java

(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)n为1时,自幂数称为独身数.n为2时,没有自幂数.n为3时,自幂数称为水仙花数.n为4时,自幂数称为玫瑰花数.n为5时,自幂数称为五角星数.n为6时,自幂数称为六合数.n为7时,自幂数称为北斗七星数.n为8时,自幂数称为八仙数.n为9时,自幂数称为九九重阳数.n为10时,自幂数称为十全十美数. 复制代码 代码如下: /* * 自幂数 * 自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等

利用Java中Calendar计算两个日期之间的天数和周数_java

前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同:阴(农)历,每个月固定28天 每周的第一天 - 阳(公)历星期日是第一天:阴(农)历,星期一是第一天 实际上,在历史上有着许多种纪元的方法.它们的差异实在太大了,比如说一个人的生日是"八月八日" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期.所以为了计时