格式化打印日期时间

项目场景:

OLED格式化打印日期和时间


问题描述

我们在使用OLED显示时间和日期的时候常常会出现格式显示不全的情况,且需要逐行调整显示位置。例如,当我们需要显示日期的时候想要把位数补齐,将日期2023/6/14显示为2023/06/14,将时间9:12:1显示为09:12:01,可以使用下面这种方法。


解决方案:

我在这里利用了sprintf函数,sprintf使用与printf上使用format时打印的文本相同的文本编写一个字符串,但内容不是打印的,而是以C字符串的形式存储在str指向的缓冲区中。它可以将制定数据按照自己想要的格式编写为一个字符串。

sprintf函数介绍请参照:sprintf - C++ Reference (cplusplus.com)

下面是我的日期时间显示函数

void OLED_ShowTime(int * Array)
{
    //Array是一个装有日期时间数据的数组
    
    uint8_t Date[10] = {'0'};
    sprintf(Date,"%d/%02d/%02d",Array[0],Array[1],Array[2]);
    OLED_ShowString(0, 0, Date, 24, 0);
    
    uint8_t Time[8] = {'0'};
    sprintf(Time,"%02d:%02d:%02d",Array[3],Array[4],Array[5]);
    OLED_ShowString(140, 0, Time, 24, 0);
    
}

效果:

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值