获取系统时间转换成密码

利用Calender获取系统时间,分别得到年月日

通过整除(/)和取余(%)获得每位数字

通过规则组合数字

import java.util.Calendar;

/**
 * 系统时间转换成密码
 * 第一位:年月日每位数字相加 结果取个位
 * 第二位:年*月*日 结果取个位
 * 第三位:年-月-日 结果取个位
 * 第四位:年+月+日 结果取个位
 * 第五位:月*日 结果取个位
 * 第六位:月+日 结果取个位
 */
public class DatePasswordUtils {
    public static String datePwd(Calendar calendar) {

        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        int qYear = year / 1000;
        int bYear = year % 1000 / 100;
        int sYear = year % 1000 % 100 / 10;
        int gYear = year % 1000 % 100 % 10;
        int sMonth = month / 10;
        int gMonth = month % 10;
        int sDay = day / 10;
        int gDay = day % 10;

        int p1 = (qYear + bYear + sYear + gYear + sMonth + gMonth + sDay + gDay) % 10;
        int p2 = (year * month * day) % 10;
        int p3 = (year - month - day) % 10;
        int p4 = (year + month + day) % 10;
        int p5 = (month * day) % 10;
        int p6 = (month + day) % 10;

        String pwd1 = String.valueOf(p1);
        String pwd2 = String.valueOf(p2);
        String pwd3 = String.valueOf(p3);
        String pwd4 = String.valueOf(p4);
        String pwd5 = String.valueOf(p5);
        String pwd6 = String.valueOf(p6);

        return pwd1 + pwd2 + pwd3 + pwd4 + pwd5 + pwd6;

    }
}

调用方式

Calendar calendar = Calendar.getInstance();
String pwd = DatePasswordUtils.datePwd(calendar);
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 我不太了解用 Arduino 自动获取网络时间,但是我可以提供一些关于 Arduino 的信息。Arduino 是一种开源电子控制器,可以用来控制和监控各种系统。它还可以用于控制简单的硬件设备,如传感器,执行器和显示器,以实现更高级的功能。 ### 回答2: 使用Arduino自动获取网络时间可以通过以下步骤实现: 1. 连接网络模块:使用Arduino板上的网络模块(例如ESP8266)与互联网进行通信。将网络模块与Arduino板通过串口或I2C总线连接。 2. 配置网络模块:使用Arduino IDE或其他适用的开发环境,编写代码配置网络模块的连接设置,包括Wi-Fi网络名称和密码等信息。确保网络模块成功连接到互联网。 3. 获取网络时间:利用网络模块连接到互联网后,可以通过发送时间请求到时间服务器来获取当前的网络时间。可以使用NTP(Network Time Protocol)来实现这一功能。 4. 编写代码获取时间:编写Arduino代码,使用网络模块与时间服务器进行通信,并接收和解析时间数据。可以利用现成的NTP库,通过向时间服务器发送NTP请求并获取时间戳。 5. 设置系统时间:将获取时间戳转换为日期时间格式,然后将其设置为Arduino系统的当前时间。可以使用内置的时间库来实现这一功能。 6. 定期更新时间:为了保持时间的准确性,可以在代码中设置定时器,定期向时间服务器发送请求,并将返回的时间更新到Arduino系统中。 通过以上步骤,可以实现使用Arduino自动获取网络时间的功能。这对于需要准确时间戳的应用场景非常有用,例如数据记录、实时控制等。 ### 回答3: 使用Arduino自动获取网络时间可以通过连接到互联网的时钟服务来实现。这里我将简要介绍一种方法。 首先,需要连接Arduino与互联网。可以使用以太网模块(如Ethernet Shield)或Wi-Fi模块(如ESP8266)等。通过这些模块,Arduino可以连接到本地网络并与网络通信。 其次,我们需要选择一个可靠的时钟服务。其中,NTP(Network Time Protocol)是一个常用的时钟同步协议,可以从NTP服务器获取准确的时间。 接下来,我们需要在Arduino代码中配置网络和时钟设置。通过使用适当的库,我们可以使用NTP协议与服务器进行通信,并获取网络时间。例如,可以使用Arduino Time库或NTPClient库等,这些库可以简化与NTP服务器的通信,并获取时间数据。 在代码中,我们需要设置要连接的NTP服务器的IP地址或主机名,并且还需要指定时区。然后,Arduino将与NTP服务器进行通信,并从服务器获取当前时间获取到的时间可以在串口上显示,或者在其他需要使用时间的任务中应用。 最后,我们可以根据需要将时间数据(例如小时、分钟、秒钟)与其他Arduino任务和功能结合使用。例如,可以将时间显示在LCD屏幕上,或者使用时间触发其他事件。 总的来说,在Arduino中使用适当的网络模块和库,配置正确的网络和时钟设置,并与NTP服务器通信,可以轻松实现自动获取网络时间的功能。这样,Arduino将能够获取准确的时间,并在各种应用中应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值