利用Java计算某个日期是星期几
作者:瓜园耕读 发布时间:2023-11-17 05:49:42
标签: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及以下是不会通过的。
总结


猜你喜欢
- 下面是配置Android开发ADB环境变量的操作步骤。工具/原料win7系统电脑+Android SDK方法/步骤1.首先右击计算机——属性
- 本文实例为大家分享了Java实现二分查找的变种,供大家参考,具体内容如下普通二分查找:先回顾一下普通的二分查找注意:二分查找有这样一个问题:
- @AutoConfiguration读取所有jar包下的 /META-INF/spring.factories 并追加到一个 LinkedM
- 这篇文章主要介绍了跨域解决方案Jsonp原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 方式一: 配置文件 application.propertiesserver.port=7788方式二: java启动命令# 以应用参数的方
- 本文实例讲述了Android TextView显示Html类解析的网页和图片及自定义标签。分享给大家供大家参考,具体如下:Android系统
- 一、获取当前文件的路径1. System.Diagnostics.Process.GetCurrentProcess().MainModul
- 一、什么是iText?在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件。通过在服务器端使用Js
- 下面还有投票,帮忙投个票👍前言最近在看某个开源项目代码并准备参与其中,代码过了一遍后发现多个自定义的配置文件用来装载业务配置代替数据库查询,
- 周末了,觉得我还有很多作业没有写,针对目前大家对OOM的类型不太熟悉,那么我们来总结一下各种OOM出现的情况以及解决方法。我们把各种OOM的
- 前景概要在这个之前service_edu子模块下的功能是没有任何问题,创建了service_oss子模块之前失败了很多次,影响到了之前原本正
- 程序结构:一、配置 1. 在pom.xml中添加依赖pom.xml文件如下:<?xml version="1.0&
- C# 和 java 比较:java 中使用的是接口。C# 使用委托机制,可以用时 + 运算符进行注册,直接多播。而 java 中是一般是使用
- Pager.javapackage pers.kangxu.datautils.common;import java.io.Serializ
- IDEA快速创建getter和setter方法找到generate我的是Mac,右击鼠标就可以打开,相信windows也不难。选择gette
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 一.摘要emmmm..对springmvc不太熟练的情况下,如果不出意外的话,项目启动后出现404页面是很烦人。在这里,我记录一下可能会导致
- 1 synchronized场景回顾目标:synchronized回顾(锁分类–>多线程)概念synchroniz
- 本文研究的主要是Java面试题中的一个比较常见的题目,判断及防止SQL注入的问题,具体介绍如下。SQL注入是目前黑客最常用的攻击手段,它的原
- 最新idea2020安装部署超详细教程懂得懂的2020.32020.2.42020.2.32020.2.220.2.12019.32018.