public class test2 {
public static void main(String[] args) {
System.out.println("输入一个数字表示今天的星期数:比如2就是代表星期二,7代表星期天");
Scanner sc =new Scanner(System.in);
int weeknum = sc.nextInt();
System.out.println("输入一个查询数字,查询往前天数的星期数");
int count = sc.nextInt();
if(weeknum-count%7>0){
System.out.println("星期"+weeknum+"往前"+count+"天是星期"+(weeknum-count));
}else{
System.out.println("星期"+weeknum+"往前"+count+"天是星期"+(7-(count%7-weeknum)));
}
}
}
最简单的实现,代码修饰后可以转化成输出中文星期
/**
*nowDay 当前星期几
*days 向前数几天
*/
public void getDay(int nowDay, int days){
int eqDay = days%7;//求得等价天数 例如 9天前和2天前等价
//算出星期几 星期天为0 如果直接nowDay-eqDay 会有负数
int reslut = (nowDay+7-eqDay)%7;
System.out.println(days+"天前是 星期"+result);
}
如果可以给个最佳
分两种情况:
1、前几天的天数小于现在的周几数(比如今天周四,三天前),就是a=4-3=1,即使星期一;
2、前几天的天数大于等于周几数时(比如今天周四,10天前),a=7-(10-4)%7=1,即10天前是星期一
public class test2 {
public static void main(String[] args) {
System.out.println("输入一个数字表示今天的星期数:比如2就是代表星期二,7代表星期天");
Scanner sc =new Scanner(System.in);
int weeknum = sc.nextInt();
System.out.println("输入一个查询数字,查询往前天数的星期数");
int count = sc.nextInt();
if(weeknum-count%7>0){
System.out.println("星期"+weeknum+"往前"+count+"天是星期"+(weeknum-count));
}else{
System.out.println("星期"+weeknum+"往前"+count+"天是星期"+(7-(count%7-weeknum)));
}
}
}这个有bug如果是星期1 输入往后7天后 会出现1-7输出星期-6的情况
可以在(weeknum-count));后面添加成(weeknum-count%7));让他变成0,就会输出1-0 输出星期1了