如果1900年1月1日是星期一。输入任意的年月日,输出它是这一年的第几天?星期几?
输入一个正整数,求它的所有因子。
最好注释解释一下,新手可懂最好
import java.util.Scanner;
/**
* @kilimy
*/
public class Demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入正整数n");
int num = sc.nextInt();
System.out.print(num + "=1");
int i = 2;
do {
if (num % i == 0) {
System.out.print("*" + i);
num = num / i;
} else {
i++;
}
} while (num > 1);
}
}
因子:
import java.util.Scanner;
public class Main{
public static String getResult(long ulDataInput){
StringBuilder sc = new StringBuilder();
int k =2;
while(ulDataInput != 1){
if(ulDataInput % k == 0){
sc.append(k +" ");
ulDataInput = ulDataInput/k;
k = 2;
}
else{ k++;}
}
return sc.toString();
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
long s =sc.nextLong();
System.out.println(getResult(s));
}
}
}
第几天可以使用这篇文档。
https://blog.csdn.net/weixin_43761659/article/details/96889620
这篇文章可以很好的解决上述的问题。
星期几可以使用这篇文档。
https://blog.csdn.net/jisuanjiguoba/article/details/79075939
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Datetest{
public static void main(String[] args){
System.out.println("请输入三个以内的数字,并以#结束:");
Scanner input = new Scanner(System.in);
String str="";
StringBuffer sb = new StringBuffer();
Calendar calendar = Calendar.getInstance();
String weekd = "日一二三四五六";
while(!(str=input.next()).equals("#")){
sb.append(str+";");
}
String subs=sb.toString();
String[] arr = subs.split(";");
if(arr.length!=3){
System.out.println("输入数据错误!");
}
else{
String date = arr[0]+"-"+arr[1]+"-"+arr[2];
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
Date datet = null;
try {
datet = f.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
calendar.setTime(datet);
int day = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("这天是星期"+weekd.substring(day-1,day));
}
}
}
先计算天数,再与7整除
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTools {
/**
* 日期转星期
*
* @param datetime
* @return
*/
public static String dateToWeek(String datetime) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
Calendar cal = Calendar.getInstance(); // 获得一个日历
Date datet = null;
try {
datet = f.parse(datetime);
cal.setTime(datet);
} catch (ParseException e) {
e.printStackTrace();
}
int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。
if (w < 0)
w = 0;
return weekDays[w];
}
public static void main(String[] args) {
System.out.println(DateTools.dateToWeek("2017-01-01"));
}
}
public static String dateToWeek(Date dateTime){
String[] weekDays = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateTime);
//指示一个星期中的某天
int w = calendar.get(Calendar.DAY_OF_WEEK) - 1;
if(w < 0){
w = 0;
}
return weekDays[w];
}
import java.util.Scanner;
public class Test18 {
/*
题目描述
根据输入的日期,计算是这一年的第几天。。
详细描述:
输入某年某月某日,判断这一天是这一年的第几天?。
输入描述:
输入三行,分别是年,月,日
输出描述:
成功:返回outDay输出计算后的第几天; 失败:返回-1
输入例子:
2012
12
31
输出例子:
366
如何判断平年和闰年,可以分为两种情况来看:
1、能被4整除的年份是闰年,不能被4整除的年份是平年。
如:2012和2016是闰年,2014和2015是平年
2、如果是世纪年(即整百年),就只有能被400整除才是闰年,否则就是平年。
如:2000年是闰年,1900年是平年
闰年2月有29天,平年2月只有28天。
*/
public static void main(String[] args) {
Scanner scn=new Scanner(System.in);
while(scn.hasNext()){
int year=scn.nextInt();
int month=scn.nextInt();
int day=scn.nextInt();
countDays(year,month,day);
}
}
public static void countDays(int year,int month,int day){
int sum=0;
switch (month-1) {
case 11:sum+=30;
case 10:sum+=31;
case 9:sum+=30;
case 8:sum+=31;
case 7:sum+=31;
case 6:sum+=30;
case 5:sum+=31;
case 4:sum+=30;
case 3:sum+=31;
case 2: if(isRunNian(year)){
sum+=29;
}else {
sum+=28;
}
case 1:sum+=31;
}
sum+=day;
System.out.println(sum);
}
public static boolean isRunNian(int year){
if(year%400==0||year%4==0&&year%100!=0){
return true;
}else {
return false;
}
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632