




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 简单数据类型和流程控制4:设int year,month,day分别表示一个日期中的年月日,试编程求a) 对于任意三个整数,判断其是否为一个合法的日期值。b) 给定一个日期值,计算若干天后的日期值c) 如果有两个日期值,计算他们相距的天数。实验原理:先了解日期,年份分为平年闰年,其中平年365天,这年的二月份为28天,闰年有366天,这年二月份有29天,月份除了二月之外,30天和31天之分,这主要用到数组来进行定义月份的天数,利用Scanner类从键盘中输入日期和相隔天数。输入日期不能超出那个日历相应的规定值实验过程:需引用的:Scanner 包名:date类: Datetext 属性:year,month,day; 方法:int Datetrue(int year,int month,int day)(这个方法功能是验证输入的日期是否正确,其中包括月份,每月的天数的验证,具体详细,看函数标注)int CountDate(int year1,int month1,int day1,int count1)(给定一个日期,计算count天后的日期是什么时候,在这个函数里,还有调用Datetrue(int year,int month,int day)认证输入的日期是否正确)int timeGap(int year_2,int month_2,int day_2,int year3,int month3,int day3)(输入两个日期,计算它们相隔时间多少天,先验证输入的日期是否正确,调用input()函数,具体详细过程看源代码)void input(int y,int m,int d)(这个函数通过递归调用,因输入的日期不正确要求用户重新输入,调用了Dateture(int year,int month,int day))package date;import java.lang.String;import java.util.Scanner;public class Datetext public int year,month,day;public int Datetrue(int year,int month,int day) /验证输入的日期是否符合正常输入 int y=year;int d=day;int mon=month;int g=0;/mon是月份/int num=0; /* num=year.length();if(num!=4)System.out.println( year+年份输入不合法);*/if(mon12|mon31|d31|d30|d29|d28|d=1) year10=year10+ynumber; /*if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) day_count=31; elseif(month!=2) day_count=30; */ int month_day=0,31,month2,31,30,31,30,31,31,30,31,30,31; for(;mnumbermonth_daymonth10;) mnumber=mnumber-month_daymonth10; if(month10=12) month10=0; year10=year10+1; month10+; day10=mnumber; System.out.println(加上+count+天是+year10+年+month10+月+day10+号); return 0;public int timeGap(int year_2,int month_2,int day_2,int year3,int month3,int day3)System.out.println(下面来计算两个日期相隔多少天);String date1=year_2+-+month_2+-+day_2;String date2=year3+-+month3+-+day3;int year1=year_2;int month1=month_2;int day2=day3;int year2=year3;int yearGap,dayGap=0;int month2=month3;int day1=day_2;int yearday=0,0;int month_year_day=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,28,31,30,31,30,31,31,30,31,30,31;/分配月份的天数if(year1year2)yearGap=year1-year2;int temp1;temp1=year1;year1=year2;year2=temp1;int temp2;temp2=month1;month1=month2;month2=temp2;int temp3;temp3=day1;day1=day2;day2=temp3;elseyearGap=year2-year1;int year=year1,year2;int month=month1,month2;for(int i=0;i=1;i+)if(yeari%4=0)month_year_dayi2=29;yeardayi=366;else month_year_dayi2=28;yeardayi=365;for(int i=1;i0) /当两个日期之间有年份之差时for(;month20;)dayGap=dayGap+month_year_day1month2;month2-;dayGap=dayGap+day2;for(;month0month2)dayGap=dayGap+month_year_day0month2-day2+day1;for(;month2month1-1;)month2+;dayGap=dayGap+month_year_day0month2;else if(month1month2)dayGap=dayGap+month_year_day0month1-day1+day2;for(;month1day2)dayGap=dayGap+day1-day2;else dayGap=dayGap+day2-day1;System.out.println(日期+date1+和日期+date2+之间相隔时间为:+dayGap+天);return 0;Datetext(int y,int m,int d) year=y; month=m; day=d; System.out.println(year+年+month+月+day+号);public void input(int y,int m,int d)int out;out=Datetrue(y,m,d);if(out=-1)System.out.println(请重新输入);Scanner sc=new Scanner(System.in);int y1=sc.nextInt();int m1=sc.nextInt();int d1=sc.nextInt();y=y1;m=m1;d=d1;input(y,m,d);else year=y; month=m;day=d;public static void main(String args)System.out.println(下面来进行日期计算过程);Scanner sc=new Scanner(System.in);System.out.println(请输入一个日期,请输入数字日期);int y=sc.nextInt();int m=sc.nextInt();int d=sc.nextInt();Datetext text=new Datetext(y,m,d);System.out.println(来验证一下读取的日期是否正确); text.Datetrue(y,m,d); System.out.println(请输入一个日期); int y1=sc.nextInt();int m1=sc.nextInt();int d1=sc.nextInt();text.input(y1, m1, d1);System.out.println(请输入一个相隔天数);int n=sc.nextInt();text.CountDate(text.year,text.month,text.day,n);System.out.println(下面来计算两个时间段的相隔天数);System.out.println(请输入日期:);System.out.println(请输入第一个日期:);int y2=sc.nextInt();int m2=sc.nextInt();int d2=sc.nextInt();text.input(y2, m2, d2);int y21=text.year;int m21=text.month;int d21=text.day;System.out.println(请输入第二个日期:);int y3=sc.nextInt();int m3=sc.nextInt();int d3=sc.nextInt();text.input(y3, m3, d3);int y31=text.year;int m31=text.month;int d31=text.day;text.timeGap(y21, m21, d21, y31, m31, d31);System.out.println(此程序就此结束);sc.clo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度主管护师(中级)综合提升测试卷汇编附答案详解
- 2023年度计算机四级题库附答案详解【综合卷】
- 2024-2025学年度自考专业(公共关系)能力提升B卷题库【历年真题】附答案详解
- 2024年自考专业(计算机信息管理)考试综合练习及答案详解【名师系列】
- 共享电动车停车规程
- 运用品牌故事传播形式引导消费者
- 天然气管道建设方案
- 社区安全巡逻值班制度
- 朋友间的真诚合作和支持
- 化学工业环保节能规程
- 水生入侵物种防控-洞察及研究
- 广西b证继续教育考试试题及答案
- 游戏主题咖啡馆与餐厅行业深度调研及发展项目商业计划书
- JG/T 463-2014建筑装饰用人造石英石板
- DB32/T 3946-2020平原水网地区闸控航道通航标准
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
- 2025年初级银行从业资格之初级个人理财考试题库
- 2025-2030年中国核子及核辐射测量仪器行业竞争格局及发展趋势分析报告
- 2024年4月全国自考00054管理学原理真题
- 银行保险机构安全保卫工作自查操作手册
- 社保培训课件视频
评论
0/150
提交评论