ZZULIOJ 1190: 按出生日期排序(结构体专题),Java

这篇具有很好参考价值的文章主要介绍了ZZULIOJ 1190: 按出生日期排序(结构体专题),Java。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ZZULIOJ 1190: 按出生日期排序(结构体专题),Java

题目描述

送人玫瑰手有余香,小明希望自己能带给他人快乐,于是小明在每个好友生日的时候发去一份生日祝福。小明希望将自己的通讯录按好友的生日排序,这样就查看起来方便多了,也避免错过好友的生日。为了小明的美好愿望,你帮帮他吧。小明的好友信息包含姓名、出生日期。其中出生日期又包含年、月、日三部分信息。输入n个好友的信息,按生日的月份和日期升序输出所有好友信息。

输入

首先输入一个整数n(1<=n<=10),表示好友人数,然后输入n行,每行包含一个好友的信息:姓名(不超过20位),以及三个整数,分别表示出生日期的年月日。

输出

按过生日的先后(月份和日期)输出所有好友的姓名和出生日期,用空格隔开,出生日期的输出格式见输出样例。文章来源地址https://www.toymoban.com/news/detail-633315.html

样例输入 Copy
3
Zhangling 1985 2 4
Wangliang 1985 12 11
Fangfang 1983  6 1
样例输出 Copy
Zhangling 1985-02-04
Fangfang 1983-06-01
Wangliang 1985-12-11
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
 
class Friend implements Comparable<Friend> {
    String name;
    int year;
    int month;
    int day;
 
    Friend(String name, int year, int month, int day) {
        this.name = name;
        this.year = year;
        this.month = month;
        this.day = day;
    }
 
    @Override
    public int compareTo(Friend o) {
        if (this.month == o.month) {
            return Integer.compare(this.day, o.day);
        }
        return Integer.compare(this.month, o.month);
    }
}
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        ArrayList<Friend> friends = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            String name = sc.next();
            int year = sc.nextInt();
            int month = sc.nextInt();
            int day = sc.nextInt();
            friends.add(new Friend(name, year, month, day));
        }
        Collections.sort(friends);
        for (Friend friend : friends) {
            System.out.printf("%s %04d-%02d-%02d\n", friend.name, friend.year, friend.month, friend.day);
        }
    }
}
import java.util.ArrayList;
import java.util.Scanner;
 
class Friend {
    String name;
    int year;
    int month;
    int day;
 
    Friend(String name, int year, int month, int day) {
        this.name = name;
        this.year = year;
        this.month = month;
        this.day = day;
    }
}
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        ArrayList<Friend> friends = new ArrayList<>();
 
        for (int i = 0; i < n; i++) {
            String name = sc.next();
            int year = sc.nextInt();
            int month = sc.nextInt();
            int day = sc.nextInt();
            friends.add(new Friend(name, year, month, day));
        }
 
        friends.sort((o1, o2) -> {
            if (o1.month == o2.month) {
                return Integer.compare(o1.day, o2.day);
            }
            return Integer.compare(o1.month, o2.month);
        });
 
        for (Friend friend : friends) {
            System.out.printf("%s %04d-%02d-%02d\n", friend.name, friend.year, friend.month, friend.day);
        }
    }
}

到了这里,关于ZZULIOJ 1190: 按出生日期排序(结构体专题),Java的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL由出生日期求年龄

    我们现在有一个学生关系表 通过语句: date_part(\\\'years\\\',age(生日))就可以求出年龄   解析: age(timestamp) 从现在时间 current_date() 减去参数(时间戳),结果返回类型为Intrval(xxyears xxmos xx days) data_part(field TEXT, source TIMESTAMP/DATE/TIME/INTERVAL) 从时间戳或时间间隔中提取特点部分并返回

    2024年02月05日
    浏览(43)
  • MySQL中根据出生日期计算年龄

    创建student表 mysql create table student(                                                                                 -     sid int primary key comment \\\'学生号\\\',                                                      

    2024年01月18日
    浏览(41)
  • python根据出生日期计算年龄的源码

    将内容过程经常用的内容做个收藏,下面的内容段是关于python根据出生日期计算年龄的的内容。 #a function to find your age def age(): print “Enter Your Date of Birth” d=input(“Day:”) m=input(“Month:”) y=input(“Year:”) #get the current time in tuple format a=gmtime() #difference in day dd=a[2]-d #difference in

    2023年04月18日
    浏览(46)
  • java 计算年龄 Java 根据出生日期计算年龄

    1.把出生日期字符串转换为日期格式。  2.计算年龄  3.执行方法

    2024年02月11日
    浏览(54)
  • MySQL根据出生日期查询年龄,以及对年龄进行分组统计

    表stu数据如下 1. 根据出生日期查询年龄 返回结果: 函数DATE():提取日期或日期/时间表达式的日期部分; 函数CURDATE():返回当前的日期; 函数TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2):计算两个日期的时间差,unit是计算时间差的单位,可以是SECOND秒、MINUTE分钟、HOUR小时、DAY天

    2024年02月11日
    浏览(62)
  • MySQL根据出生日期计算年龄的五种方法比较

    方法一 缺陷,当日期为未来日期时结果为0,而不是负数; 这里用了5个函数和两个运算符。 方法二 解决了方法一为负数的问题,但看起来更复杂;这里使用了6个函数和3个运算符。 改良后方法一和方法二 改良后的方法一,少了一个函数和一个运算符,当日期为未来日期时计

    2024年02月11日
    浏览(42)
  • 【夏令时】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天

    用@JsonFormat(pattern = \\\"yyyy-MM-dd\\\")注解,出生日期竟然年轻了一天 艺术源于生活,bug源于开发。 起因是艰苦奋战一个月, 测试及验收都顺利通过 ,上线也稳稳的 成功 。但是 毒奶 总是在不经意给你灌上,部分的用户的 身份证和出生日期对不上,总是少一天 。 开始以为 前端显

    2024年02月11日
    浏览(38)
  • Java程序设计——在一个给定的字符串中查找并解析姓名、出生日期、个人网站、身高和体重信息,并输出相应的结果

    当我们分析这段代码时,可以按照代码的逻辑结构进行分段: 获取姓名: 在这个部分,首先使用  indexOf  方法查找冒号的位置。然后,使用  substring  方法将冒号后面的字符串截取出来,得到姓名。接下来,使用  startsWith  方法判断姓名是否以 “张” 开头,如果是则输出

    2024年02月11日
    浏览(36)
  • [C语言实现]数据结构——手撕顺序栈之我出生就会写一个栈

    🥰作者: FlashRider 🌏专栏: 数据结构 目录 栈的前置知识 1.什么是栈? 2.生活中哪些地方有栈的影子? 顺序表实现栈 1.为什么通常采用顺序表实现栈? 2.栈的实现 栈( stack )又名堆栈,它是一种 运算受限的线性表 。限定仅在表尾进行插入和删除操作的线性表。这一端被称为

    2024年02月08日
    浏览(42)
  • 【蓝桥杯冲刺】日期类专题特训

    目录 1. 日期累加 题目描述 输入 输出 代码 2. 日期差值 题目描述 输入 输出 代码 3. 打印日期 题目描述 输入 输出 代码 写在最后: 题目链接: 日期累加 输入 输出 题目链接:日期差值 输入 输出 题目链接:打印日期 输入 输出 日期类的题目大同小异, 把日期类的基本思路练

    2023年04月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包