Java中使用Calendar类来解决日期的算法题
来源:互联网 发布:淘宝页头尺寸 编辑:程序博客网 时间:2024/06/08 09:08
使用Java中的Calendar类有时候遇到日期类的算法题就会变得特别简单
第一步:需要获得日历的对象,静态调用Calendar中的getInstance()方法获得的是默认的默认时区和默认的语言环境。
Calendar c = Calendar.getInstance();第二步:通过Calendar对象调用set()方法给日历设置一个给定的值,set()方法有很多参数
一、set()方法的使用
1、两个参数的例如:
Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, 2018);//设置给定年为2018年c.set(Calendar.MONTH, 4);//设置给定的月为5月份,月份的值是0-11c.set(Calendar.DAY_OF_MONTH, 10);//设置给定的日期为get 和 set 的字段数字,指示一个月中的某天。c.set(Calendar.DAY_OF_WEEK, 2);//设置给定的星期为:星期一(星期是周日为第一天,1-7分别对应周日-周六)System.out.println(c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH)+" "+c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));输出:2018-5-10 2:57:32当前只是设置了年、月、日,其他没有设置的是按照默认为当前时间来处理,这里的时、分、秒输出的是当前的时间
2、三个参数(年,月,日)的例如:
Calendar c = Calendar.getInstance();c.set(2017,3,4);//例如设置日历为:2017-4-4System.out.println(c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH)+" "+c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));输出:2017-4-4 3:4:6
3、五个参数和六个参数的例如:
c.set(2017,3,4,8,0);//例如设置日历为:2017-4-4 8:0(至于秒是当前时间的秒数)c.set(2017,3,4,8,0,59);//例如设置日历为:2017-4-4 8:0:59二、在算法中的使用
1、例如:问题描述有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在在这一年中,既是13号又是星期五的日期。说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
样例输入
1998
样例输出
1998-2-13
1998-3-13
1998-11-13
代码如下:
import java.util.Calendar;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();Calendar c = Calendar.getInstance();for (int i = 0; i < 12; i++) {c.set(n, i,13);if(c.get(Calendar.DAY_OF_WEEK)==6){System.out.println(c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH));}}}}
2、例如:
星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19请严格按照格式书写。不能出现其它文字或符号。
代码如下:import java.util.Calendar;public class Main {public static void main(String[] args) {Calendar c = Calendar.getInstance();int i = 9;c.set(2014, 10,i);c.set(Calendar.DAY_OF_MONTH, i+1000);System.out.println(c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH));}}
输出:2017-8-5注意:这道题填写的答案格式为:yyyy-mm-dd
0 0
- Java中使用Calendar类来解决日期的算法题
- Java中使用Calendar类来解决日期的算法题
- 【Java】使用Calendar类来获取当前的日期
- java日期类 calendar的使用
- JAVA中获取日期和时间(使用Calendar类)
- java 中 使用Calendar类来获取当前时间
- Java 中使用 Calendar 类得到输入日期所在月的最后一天
- 使用java.util.Calendar来取得相关日期信息
- java中时间类Calendar的使用
- java中Calendar类的使用
- Java中日历类Calendar的使用
- Java中Calendar类的使用
- Java中Calendar类的使用
- Calendar日期的使用
- java中使用Calendar获取指定日期前n个小时的时间日期
- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)(一)
- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
- 红牌
- ElasticSearch文档简介
- K叉哈夫曼树
- 蓝桥 快速排序
- Mysql解压版安装注意事项
- Java中使用Calendar类来解决日期的算法题
- POJ2186Popular Cows(强连通分量)
- NSOperation及子类、NSOperationQueue属性及方法
- CENTOS: 增加SWAP的大小
- bzoj2253: [2010 Beijing wc]纸箱堆叠
- Linux内核之进程上下文和中断上下文
- Can't connect to MySQL server on 'localhost' (10061)
- java 抽象和封装
- 城归族的“驿站”-----百城顾问