您的位置:首页 > 房产 > 建筑 > 上海网站制作软件_潍坊做网页的公司_有名的seo外包公司_浏览器打开

上海网站制作软件_潍坊做网页的公司_有名的seo外包公司_浏览器打开

2025/4/22 8:14:40 来源:https://blog.csdn.net/weixin_65550131/article/details/147142278  浏览:    关键词:上海网站制作软件_潍坊做网页的公司_有名的seo外包公司_浏览器打开
上海网站制作软件_潍坊做网页的公司_有名的seo外包公司_浏览器打开

由题意直知,要求将给定的字符串转为符合格式的字符串。首先我们来思考一下例如02/02/02这样的数字日月肯定不用进行修改,修改后需要加上对应的年份的前两位,题目要求1960年1月1日~2059年12年12月31日,(对1960年至2059年进行循环因为题目满足每一天不需要再关注日)这其中所有只有2002符合要求。再举例18/05/25,也就只需要去找18和25在年份中满足的情况,然后按照题目要求输出结果即可(题目是从60~59即所有年份至多出现一次)。

①接收指定的年月日,进行拆分(得到两个年份,如果一样视为一个年份)

②遍历1960~2059寻找满足尾数是年份的数字

③如果x做年,y就是日,z就是月,相反亦然

④每次找到按照格式输出年月日

补充:由于还需要进行日期大小的排序所以对年月日的大小需要进行比较,然后判断输出

代码如下👇

	static int a,b,c;public static void main(String[] args) {Scanner scan = new Scanner(System.in);String s = scan.nextLine();//接收数据String[] s2 = s.split("/");//进行拆分a= Integer.parseInt(s2[0]);//转换为数字b = Integer.parseInt(s2[1]);c = Integer.parseInt(s2[2]);int[] month={0,31,28,31,30,31,30,31,31,30,31,30,31};//由于排序,需要逐个比较for (int i = 1960; i <=2059 ; i++) {//年if (i%4==0&&i%100!=0 || i%400==0) {//判断闰年month[2]=29;}else {month[2]=28;}for (int j = 1; j <= 12; j++) {//月for (int k = 1; k <= month[j]; k++) {//日int ans=i%100;if (judice(ans,j,k)) {//判断是否符合题意System.out.printf("%d-%02d-%02d",i,j,k);//格式化输出,多学习一下System.out.println();}}}}scan.close();}public static boolean judice(int i,int j,int k) {//判断公式if (a==i&&b==j&&c==k)return true;if (a==j&&b==k&&c==i)return true;if (a==k&&b==j&&c==i)return true;return false;}

printf是格式化的输出

在后面加字符串和要输出的数据,字符串代表格式。这里02d代表2输出二位不够自动补0

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com