java何如通过集合添加00:00到24:00.每半个小时增加一个

所以应该只有一个比较硬编码的给出间隔数字30而已,当然从某种意义说LocalTime.MINLocalTime.MAX也是硬编码,也是给出的数字,只不过恰好换了个已有的变量而已,不过关键是下面的处理

所以换句话说,就可以写一个方法,给定开始时间,结束时间,时间间隔的分钟数,最后得到间隔的所有时间了

 

 

public static void main(String[] args) {

   // 1.LocalTime.MIN 可以参考源码 00:00

// 2. LocalTime.MAX可以参考源码

23:59:59.999999999

// 1.30l 相隔多超时间

    groupByInterval(LocalTime.MIN, LocalTime.MAX, ChronoUnit.MINUTES, 30l);
}
private static List<LocalTime> groupByInterval(LocalTime begin, LocalTime end, TemporalUnit intervalUnit, long intervalValue){
    long between = begin.until(end, intervalUnit);
    BigDecimal decimal = new BigDecimal(between);
    BigDecimal in = new BigDecimal(intervalValue);
    BigDecimal divide = decimal.divide(in,2,BigDecimal.ROUND_HALF_UP);
    List<LocalTime> list = Stream.iterate(LocalTime.MIN, seed -> seed.plusMinutes(intervalValue))
            .limit(divide.longValue()).collect(Collectors.toList());

    for (LocalTime localTime : list) {
        System.out.println(localTime);
    }

    return list;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Netty搭建MQTT服务器可以通过以下步骤实现: 1. 创建一个Netty的ServerBootstrap对象来启动服务器 2. 创建一个ChannelInitializer对象来初始化ChannelPipeline,设置必要的处理器 3. 创建一个MQTTDecoder对象和一个MQTTEncoder对象,分别用于将ByteBuf转换成MQTT消息对象和将MQTT消息对象转换成ByteBuf 4. 创建一个MQTTHandler对象,用于处理接收到的MQTT消息 5. 将MQTTDecoder、MQTTEncoder和MQTTHandler添加到ChannelPipeline 6. 启动Netty服务器 以下是一个简单的Java代码示例: ```java import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.handler.codec.mqtt.MqttDecoder; import io.netty.handler.codec.mqtt.MqttEncoder; public class NettyMqttServer { private static final int PORT = 1883; public static void main(String[] args) throws InterruptedException { ServerBootstrap bootstrap = new ServerBootstrap(); EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { bootstrap.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast("decoder", new MqttDecoder()); pipeline.addLast("encoder", new MqttEncoder()); pipeline.addLast("handler", new MQTTHandler()); } }); ChannelFuture f = bootstrap.bind(PORT).sync(); System.out.println("MQTT server started on port " + PORT); f.channel().closeFuture().sync(); } finally { workerGroup.shutdownGracefully(); bossGroup.shutdownGracefully(); } } private static class MQTTHandler extends SimpleChannelInboundHandler<Object> { @Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { // 处理接收到的MQTT消息 // ... } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { cause.printStackTrace(); ctx.close(); } } } ``` 这段代码实现了使用Netty搭建MQTT服务器的基本流程,它创建了一个Netty的ServerBootstrap对象来启动服务器,并创建了一个ChannelInitializer对象来初始化ChannelPipeline,设置了必要的处理器。同时,它创建了一个MQTTDecoder对象和一个MQTTEncoder对象来将ByteBuf转换成MQTT消息对象和将MQTT消息对象转换成ByteBuf,并创建了一个MQTTHandler对象来处理接收到的MQTT消息。最后,它将MQTTDecoder、MQTTEncoder和MQTTHandler添加到ChannelPipeline,并启动Netty服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值