zoukankan      html  css  js  c++  java
  • 学习Java的第十二天

    学习内容:实验一Date类

    实验代码:

    import java.util.Scanner;
    public class Date {
    public int monthDay[]={31,28,31,30,31,30,31,31,30,31,30,31};
    public String weekName[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
    public String monthName[]={"Jan","Feb","Mar","Api","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
    private int year;
    private int month;
    private int day;
    public Date(int year,int month,int day) { //构造方法
    this.year=year;
    this.month=month;
    this.day=day;
    System.out.println("Constructor run");
    }
    public void setMonth(int month) { //设置月份
    this.month=month;
    }
    public int getMonth() { //返回月份
    return month;
    }
    public void setDay(int day) { //设置天数
    this.day=day;
    }
    public int getDay() { //返回天数
    return day;
    }
    public void setYear(int year) { //设置年份
    this.year=year;
    }
    public int getYear() { //返回年份
    return year;
    }
    void tomorrow() { //日期加一
    if(((year%4==0)&&(year%100!=0))||(year%400==0)) {//判断闰年
    if(month==12&&day==31) {
    year+=1;
    month=1;
    day=1;
    }
    else if((month==1||month==3||month==5||month==7||month==8||month==10)&&day==31) {
    month+=1;
    day=1;
    year=year;
    }
    else if((month==4||month==6||month==9||month==11)&&day==30) {
    month+=1;
    day=1;
    year=year;
    }
    else if(month==2&&day==29) {
    month+=1;
    day=1;
    }
    else day+=1;
    }
    else {
    if(month==12&&day==31) {
    year+=1;
    month=1;
    day=1;
    }
    else if((month==1||month==3||month==5||month==7||month==8||month==10)&&day==31) {
    month+=1;
    day=1;
    year=year;
    }
    else if((month==4||month==6||month==9||month==11)&&day==30) {
    month+=1;
    day=1;
    year=year;
    }
    else if(month==2&&day==28) {
    month+=1;
    day=1;
    }
    else {
    day+=1;
    }
    }
    }
    public void yesterday() { //日期减一
    if(((year%4==0)&&(year%100!=0))||(year%400==0)) {//判断闰年
    if(day==1) {
    if(month==1) {
    year-=1;
    month=12;
    day=31;
    }
    else if(month==3) {
    day=29;
    month=2;
    }
    else if(month==2||month==4||month==6||month==8||month==9||month==11) {
    day=31;
    month-=1;
    }
    else if(month==5||month==7||month==10||month==12) {
    day=30;
    month-=1;
    }
    }
    else day-=1;
    }
    else {
    if(day==1) {
    if(month==1) {
    year-=1;
    month=12;
    day=31;
    }
    else if(month==3) {
    day=28;
    month=2;
    }
    else if(month==2||month==4||month==6||month==8||month==9||month==11) {
    day=31;
    month-=1;
    }
    else if(month==5||month==7||month==10||month==12) {
    day=30;
    month-=1;
    }
    }
    else day-=1;
    }
    }
    public int weekDay()
    {
    int a=month,b=year;
    if(month==1||month==2)
    {
    a=month+12;
    b=year-1;
    }
    return (day+2*a+3*(a+1)/5+b+b/4-b/100+b/400+1)%7;
    }
    public int isLeapYear() { //判断闰年
    if(((year%4==0)&&(year%100!=0))||(year%400==0)) {
    return 1;
    }
    else return 0;
    }
    public void printMonthCalendar() //打印日历
    {
    System.out.println("SunMonTueWedThuFriSat");
    int b;
    b=weekDay()-(day-1)%7;
    for(int j=0;j<b;j++)
    {
    System.out.print(" ");
    }
    int a=0;
    if(((year%4==0)&&(year%100!=0))||(year%400==0)&&month==2)
    {
    a=29;
    }
    else a=monthDay[month-1];
    for(int h=1;h<=a;h++)
    {
    System.out.printf("%3d",h);
    b++;
    if(b==7)
    {
    System.out.println();
    b=0;
    }
    }
    System.out.println();
    }
    public void chineseFormat() //显示中式日期
    {
    System.out.println(year+"年"+month+"月"+day+"日");
    }
    public void americaformat() //显示美式日期
    {
    System.out.println(monthName[month-1]+" "+day+","+year);
    }
    public static void main(String[] args) { //主方法
    // TODO 自动生成的方法存根
    int year,month,day;
    Date d1=new Date(0, 0, 0);
    Date d2=d1;
    System.out.println("请输入日期:");
    Scanner sc=new Scanner(System.in);
    year=sc.nextInt();
    month=sc.nextInt();
    if(month>12) {
    month=12;
    }
    else if(month<1) {
    month=1;
    }
    day=sc.nextInt();
    if(((year%4==0)&&(year%100!=0))||(year%400==0)) { //控制日期合法输入
    if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
    if(day<1) {
    day=1;
    }
    else if(day>31) {
    day=31;
    }
    }
    if(month==2) {
    if(day<1) {
    day=1;
    }
    else if(day>29) {
    day=29;
    }
    }
    if(month==4||month==6||month==9||month==11) {
    if(day<1) {
    day=1;
    }
    else if(day>30) {
    day=30;
    }
    }
    }
    else {
    if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
    if(day<1) {
    day=1;
    }
    else if(day>31) {
    day=31;
    }
    }
    if(month==2) {
    if(day<1) {
    day=1;
    }
    else if(day>28) {
    day=28;
    }
    }
    if(month==4||month==6||month==9||month==11) {
    if(day<1) {
    day=1;
    }
    else if(day>30) {
    day=30;
    }
    }
    }
    d1.setYear(year);
    d1.setMonth(month);
    d1.setDay(day);
    System.out.println("昨天为:");
    d1.yesterday();
    d1.chineseFormat();
    System.out.println("请输入日期:");
    Scanner sc1=new Scanner(System.in);
    year=sc1.nextInt();
    month=sc1.nextInt();
    if(month>12) {
    month=12;
    }
    else if(month<1) {
    month=1;
    }
    day=sc1.nextInt();
    if(((year%4==0)&&(year%100!=0))||(year%400==0)) {
    if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
    if(day<1) {
    day=1;
    }
    else if(day>31) {
    day=31;
    }
    }
    if(month==2) {
    if(day<1) {
    day=1;
    }
    else if(day>29) {
    day=29;
    }
    }
    if(month==4||month==6||month==9||month==11) {
    if(day<1) {
    day=1;
    }
    else if(day>30) {
    day=30;
    }
    }
    }
    else {
    if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
    if(day<1) {
    day=1;
    }
    else if(day>31) {
    day=31;
    }
    }
    if(month==2) {
    if(day<1) {
    day=1;
    }
    else if(day>28) {
    day=28;
    }
    }
    if(month==4||month==6||month==9||month==11) {
    if(day<1) {
    day=1;
    }
    else if(day>30) {
    day=30;
    }
    }
    }
    d2.setYear(year);
    d2.setMonth(month);
    d2.setDay(day);
    System.out.println("明天为:");
    d2.tomorrow();
    d2.americaformat();
    d2.printMonthCalendar();
    }

    }

    运行截图:

     遇到的问题:

    明天任务:包装类

  • 相关阅读:
    【开发笔记】- Linux命令大全
    【面试突击】- SpringMVC那些事(一)
    【阿里云开发】- 搭建和卸载svn服务器
    【阿里云开发】- 安装tomcat
    SpringCloud之Eureka服务发现和注册(二)
    springcloud之环境工程模块(一)
    java多线程中篇(三) —— 线程的控制(创建,运行,阻塞,中断,结束)
    java多线程中篇(二) —— 线程的创建和Synchronized锁关键字
    java多线程中篇(一) —— Thread详情
    JUC之AbstractQueuedSynchronizer原理分析
  • 原文地址:https://www.cnblogs.com/zyj3955/p/13332134.html
Copyright © 2011-2022 走看看