HDOJ(HDU) 2133 What day is it(认识下Java的Calendar类---日期类)

简介: HDOJ(HDU) 2133 What day is it(认识下Java的Calendar类---日期类)

Problem Description

Today is Saturday, 17th Nov,2007. Now, if i tell you a date, can you tell me what day it is ?


Input

There are multiply cases.

One line is one case.

There are three integers, year(0< year<10000), month(0<=month<13), day(0<=day<32).


Output

Output one line.

if the date is illegal, you should output “illegal”. Or, you should output what day it is.


Sample Input

2007 11 17


Sample Output

Saturday


这个题目的某个日期是星期几,和真正的日历是不一样的!!!

所以,用Java的日期类Calendar是过不了的。

只能自己写囖。。。题目意思是:1 1 1是星期一!

而事实上,1 1 1是星期六。不要问我为什么,我也不知道。。。

package cn.hncu.acm;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class P2133 {
    public static void main(String[] args) throws ParseException {
        String[] week = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
        int yuee[][]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int y = sc.nextInt();
            int m = sc.nextInt();
            int d = sc.nextInt();
             if((yunn(y)==0&&m==2&&d==29)||m>12||d>yuee[yunn(y)][m]||m==0||d==0||y==0)
               {
                   System.out.println("illegal");
                   continue;
               }
             /*
            //题目是有问题的
            //1 1 1 应该是星期六,具体为什么看网上资料。
            //这个题目要求已知1 1 1是星期一
            String[] week = {"","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
            String strTime = y+"-"+m+"-"+d;
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            c.setTime(format.parse(strTime));
            System.out.println(week[c.get(Calendar.DAY_OF_WEEK)]);
            */
             int s=0;
             for(int i=1;i<y;i++){
                 if(yunn(i)==1){
                     s+=366;
                 }else{
                     s+=365;
                 }
             }
             for(int i=1;i<m;i++){
                 s+=yuee[yunn(y)][i];
             }
             s+=d;
             s=s%7;
             System.out.println(week[s]);
        }
    }
    public static int yunn(int xx)
    {
        if((xx%4==0&&xx%100!=0)||(xx%400==0))
            return 1;//是闰年
        return 0;//不是闰年
    }
}
目录
相关文章
|
3月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
276 83
|
10天前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
162 101
|
10天前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
179 100
|
2月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
298 120
|
4月前
|
IDE Java 数据挖掘
Java 基础类从入门到精通实操指南
这份指南专注于**Java 17+**的新特性和基础类库的现代化用法,涵盖开发环境配置、数据类型增强(如文本块)、字符串与集合处理进阶、异常改进(如密封类)、IO操作及实战案例。通过具体代码示例,如CSV数据分析工具,帮助开发者掌握高效编程技巧。同时提供性能优化建议和常用第三方库推荐,适合从入门到精通的Java学习者。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
184 35
|
5月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
80 0
|
2月前
|
缓存 安全 Java
Java反射机制:动态操作类与对象
Java反射机制是运行时动态操作类与对象的强大工具,支持获取类信息、动态创建实例、调用方法、访问字段等。它在框架开发、依赖注入、动态代理等方面有广泛应用,但也存在性能开销和安全风险。本文详解反射核心API、实战案例及性能优化策略,助你掌握Java动态编程精髓。
|
2月前
|
存储 安全 Java
Java集合框架(一):List接口及其实现类剖析
本文深入解析Java中List集合的实现原理,涵盖ArrayList的动态数组机制、LinkedList的链表结构、Vector与Stack的线程安全性及其不推荐使用的原因,对比了不同实现的性能与适用场景,帮助开发者根据实际需求选择合适的List实现。
|
3月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
187 14