首页 > 其他分享 >软件测试--设计函数实现输入日期显示星期几

软件测试--设计函数实现输入日期显示星期几

时间:2024-03-22 20:55:39浏览次数:23  
标签:星期 -- System int println 软件测试 true 输入 out

1.划分等价类:

2.运用等价类划分法设计测试用例

3.源程序代码

  1 import java.text.ParseException;
  2 import java.text.SimpleDateFormat;
  3 import java.util.Calendar;
  4 import java.util.Date;
  5 import java.util.Scanner;
  6 
  7 public class test1 {
  8     public static void main(String[] args) {
  9         String year = null;//年份
 10         String month = null;//月份
 11         String day = null;//日
 12         boolean result=true;
 13         boolean result1=true;
 14         boolean result2=true;
 15         //输入年月日
 16         Scanner scanner1 = new Scanner(System.in);
 17         Scanner scanner2 = new Scanner(System.in);
 18         Scanner scanner3 = new Scanner(System.in);
 19 
 20 
 21         //判断年份
 22         while (result) {
 23             try {
 24                 System.out.println("请输入年份:1900-2050:");
 25                 year=scanner1.next();
 26                 //强制转换成int类型
 27                 int year1 = Integer.parseInt(year);
 28                  result = PanduanYear(year1);//判断段年份
 29                 if(result==true){
 30                     result=false;
 31                 }else {
 32                     result=true;
 33                     System.out.println("输入年份超出范围,请重新输入:");
 34                 }
 35 
 36             } catch (Exception e) {
 37                 System.out.println("年份输入有误,请输入正确的年份");
 38 
 39             }
 40         }
 41 
 42 
 43         //判断月份
 44         while (result1) {
 45             System.out.println("请输入月份1-12:");
 46             month = scanner2.next();
 47             try {
 48                 //强制转换成int类型
 49                 int month1 = Integer.parseInt(month);
 50                 result1 = PanduanMonth(month1);
 51                 if (result1 == true) {
 52                     result1 = false;
 53                 } else {
 54                     result1 = true;
 55                     System.out.println("输入月份超出范围,请重新输入:");
 56                 }
 57             } catch (Exception e) {
 58                 System.out.println("月份输入有误,请输入正确的月份");
 59             }
 60         }
 61 
 62         //判断日期
 63         while (result2) {
 64             System.out.println("请输入日:");
 65             day = scanner3.next();
 66             try {
 67                 //强制转换成int类型
 68                 int year1 = Integer.parseInt(year);
 69                 int month1 = Integer.parseInt(month);
 70                 int day1 = Integer.parseInt(day);
 71                 result2 = PanDay(year1, month1, day1);
 72                 if (result2 == true) {
 73                     result2=false;
 74                 }else {
 75                     result2 = true;
 76                     System.out.println("输入日期超出范围,请重新输入:");
 77                 }
 78             } catch (Exception e) {
 79                 System.out.println("日期输入有误,请输入正确的日期");
 80             }
 81         }
 82 
 83         SimpleDateFormat fmt = new SimpleDateFormat("dd MM yyyy");
 84 
 85         Date d = null;
 86         try {
 87             d = fmt.parse(day+" "+month+" "+year);
 88         } catch (ParseException e) {
 89             throw new RuntimeException(e);
 90         }
 91 
 92         Calendar cal = Calendar.getInstance();
 93 
 94         cal.setTime(d);
 95 
 96         int weekDay = cal.get(Calendar.DAY_OF_WEEK);
 97 
 98         switch(weekDay) {
 99             case 1 : System.out.println("SUNDAY"); break;
100             case 2 : System.out.println("MONDAY"); break;
101             case 3 : System.out.println("TUESDAY"); break;
102             case 4 : System.out.println("WEDNESDAY"); break;
103             case 5 : System.out.println("THURSDAY"); break;
104             case 6 : System.out.println("FRIDAY"); break;
105             case 7 : System.out.println("SATURDAY"); break;
106             default: break;
107         }
108     }
109     //判断合理的年份
110     public static boolean PanduanYear (Integer year){
111         return year >= 1900 && year <= 2050;
112     }
113 
114     //判断月份是否正常
115     public static boolean PanduanMonth (Integer month){
116         return month >= 1 && month <= 12;
117     }
118 
119 
120 
121     //判断日期是否输入正常
122     public static boolean PanDay(Integer year,Integer month ,Integer day){
123         int run=0;//0是平年,1是闰年
124         int m=0;//0是31天,1是30天,2是29天,3是28天
125         boolean result = false;
126         if(year%400==0||year%4==0){
127             run=1;
128         }
129         if(month==4||month==6||month==9||month==11){
130             m=1;
131         }
132         if(month==2&&run==1){
133             m=2;
134         }
135         if (month==2&&run==0){
136             m=3;
137         }
138 
139         if (m==1&&day>=1&&day<=30){
140             result=true;
141         }
142 
143         if (m==0&&day>=1&&day<=31){
144             result=true;
145         }
146 
147         if (m==2&&day>=1&&day<=29){
148             result=true;
149         }
150 
151         if (m==3&&day>=1&&day<=28){
152             result=true;
153         }
154 
155         return result;
156     }
157 
158 
159 
160 }

 

标签:星期,--,System,int,println,软件测试,true,输入,out
From: https://www.cnblogs.com/jizhaosai/p/18090408

相关文章

  • Python解压当天创建的ZIP文件到指定的文件夹中
    1.首先,导入了需要使用的模块:-`zipfile`:用于处理ZIP文件的模块。-`os`:提供了与操作系统交互的功能。-`shutil`:用于高级文件操作,例如移动文件等。-`datetime`:用于处理日期和时间的模块。2.定义了一个函数`unzip_todays_files(zip_files_folder,extract_folder)`......
  • 模拟费用流
    模拟费用流,顾名思义,就是直接跑费用流会超时,于是尝试用数据结构模拟费用流的过程。在某些题里,模拟费用流就是"反悔贪心"。CF865D:BuyLowSellHighAGC018C:CoinsP1484:种树CF730I:OlympiadinProgrammingandSportsBZOJ4977:跳伞求生UOJ455:雪灾与外卖P6122:MoleTunnelsP382......
  • loj#533. 「LibreOJ Round #6」花煎
    非常巧妙的转化。考虑仅计算半边的序列,那么这样的话\(len\)削了一半,要达成的色彩值也开平方了。问题就转化为,将\(l\)拆分为序列\(a\),使得\(\sum_{i=1}^{n}(a_i+1)=l\),且使得\(\prod_{i=1}^{n}a_i\geqk\)的最小\(l\)。经过一些计算,可以发现2的段不超过一个,3的段不......
  • P1055 [NOIP2008 普及组] ISBN 号码
    P1055[NOIP2008普及组]ISBN号码[NOIP2008普及组]ISBN号码题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括\(9\)位数字、\(1\)位识别码和\(3\)位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-6......
  • CF1618G Trader Problem 题解
    题目链接:CF或者洛谷本题挺有意思的,我们观察到\(\lek\)这个限制使得我们可以将原序列进行分组,把\(\lek\)的限制的元素放在一组中,那么根据题意,这组当中任意元素之间都是可以互相交换的,包括系统用品。那么假设一组中有\(x\)个自身的物品,\(y\)个系统物品,那么这\(x+y\)物......
  • C#进阶篇
    ArrayList1、Arraylist本质上是一个可以自动扩容的object数组2、由于用万物之父来存储数据,自然存在装箱拆箱3、当往其中进行值类型存储时就是在装箱,当将值类型对象取出来转换使用时,就存在拆箱。4、所以ArrayList尽量少用,之后我们会学习更好的数据容器(泛型)。底层原理:底层......
  • 字节流读取数据
    importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;publicclassMain{publicstaticvoidmain(String[]args)throwsIOException{FileInputStreamfileInputStream=new......
  • 【代码随想录】零钱兑换II(关于组合与排列的区别)
    题目描述分析按动态规划的分析步骤分析的话,代码是不难写出来的,但是写出来后你就会发现,结果不对,多出了很多组合:解决方法:什么都不用改,直接把两个循环调换即可。。代码如下:#include<bits/stdc++.h>usingnamespacestd;intchange(intamount,vector<int>&coins){ i......
  • 【新品播报】米尔电子发布基于海思Hi3093高性能MPU产品
    新品播报!米尔电子发布了基于海思Hi3093高性能MPU的MYC-LHi3093核心板及开发板,此款核心板支持openEulerembeddedOS欧拉系统,丰富生态,可实现100%全国产自主可控。不仅如此,米尔基于Hi3093的核心板及开发板,配套提供工业控制demo,方便客户评估PLC等应用场景实时控制性能,为追求实时性......
  • dalsa相机结合yolo实现检测
    本节可以说是本专栏最核心的内容之一,将dalsa相机、yolo、qt相结合,实现一个基于dalsa相机彩图的缺陷检测系统目录引言STEP1添加初始化模型的代码STEP2添加检测部分代码STEP3添加标框代码STEP4添加缩放框代码效果展示引言如果你看了上一节的内容,那么这一节你......