java求输入具体时间是星期几的问题
需求分析:
用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。注意,2月份闰年为29天,非闰年为28天;可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。
思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几.
3.2概要设计:
本程设计思路: 首先判断输入的月份如果是1,3,5,7,8,10,12的话,那就天数加31,再判断是不是闰年,如果是闰年则天数加28,不是的加29,其他剩余的月份都加30。然后用加起来的天数加上欲求的天数加上6天的和去除7,就能得到所求的星期数。
程序流程图(如左图):
3.3 详细设计与编码:
见上传程序。
3.4 调试分析:
在调试过程中输入日期等的事情由于先前的经验已经是好多了,能处理过来了,到是没有遇到太大的麻烦。倒是在求星期几的时候老是出错,试了好几遍,在加是些理解才得出了正确的计算公式的。
程序执行的结果:
错误检测:
3.5 用户使用说明:
用户根据程序的提示输入分别输入年份,该年1月1日的星期数,然后输入要计算的日期,程序就会自己计算出所需的得数。
3.6 设计心得:
对于这次的实验感触最大的就是往往想的理所当然,但是结果确是跟所需要的大相径庭,因此在排错的时候要有耐性,多加计算和尝试,这样才能得出最优的结果。
/**用户任意输入一个年份以及该年的1月1日是星期几,
而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。
注意,2月份闰年为29天,非闰年为28天;可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。
思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,
让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几。*/
import javax.swing.JOptionPane;
public class qi {
public static void main(String args[]){
try{
int year;
int mou;
int day;
int week;
int daysum=0;
int sum;
String br1=JOptionPane.showInputDialog("请输入年数:");
year = Integer.parseInt(br1);
String br2=JOptionPane.showInputDialog("请输入该年数1月1号的星期数:");
System.out.flush();
原文请找腾讯752018766辣,文-论'文.网
http://www.751com.cn for (int i=1;i<mou;i++){
if(i==1||i==3||i ==5||i ==7||i ==8||i ==10||i==12){//如果是有三十天的,这加30
daysum+= 31;
}
else if (i==2||i ==4||i ==6||i ==9||i ==11){
if (i==2){
if (year/4==0&&year/400!=0||year/100==0&&year/400==0) daysum+=29;//是闰年就加29
else daysum+=28;//不是闰年就加28
}
else daysum=daysum+30;//其他月份的加30
}
}
sum =(daysum+day+week)%7;//计算日期,用与1月1号的时间差除7
JOptionPane.showMessageDialog(null,year+"年"+"1月1号为星期"+week+"\n"+"则该年的"+mou+"月"+day+"日为星期:"+sum);
}
catch(NumberFormatException e){
JOptionPane.showMessageDialog(null,"出错!!输入数应该为数字");
}
catch(NegativeArraySizeException e){
JOptionPane.showMessageDialog(null,"出错!!输入数应该为正数");1837
java求输入具体时间是星期几的问题下载如图片无法显示或论文不完整,请联系qq752018766