关于BCD码的相关操作

简介:

bcd参考:http://www.baike.com/wiki/BCD%E7%A0%81

(1)获取日期和时间的BCD码

比如 2013年12月6日21:23:10,转化为BCD码就是131206212310

Java代码   收藏代码
  1. static public String getTime2() {  
  2.         SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmmss");  
  3.         return format.format(new Date());  
  4.     }  

 

 

(2)把BCD码转化为金额

Java代码   收藏代码
  1. /*** 
  2.      * 从BCD获取金额,单位是元,"000000011023"-->"110.23";"000000000013"-->"0.13" 
  3.      * @param bcd 
  4.      * @return 
  5.      */  
  6.     public static String getMoneyFromBcd(String bcd){  
  7.         if(StringUtil.isNullOrEmpty(bcd)){  
  8.             return null;  
  9.         }  
  10.         int dotLoc=bcd.length()-2;  
  11.         String money=bcd.substring(0,dotLoc )+Constants.DOT+bcd.substring(dotLoc);  
  12.         bcd=money.replaceAll("^[0]+""");  
  13.         if(bcd.startsWith(".")){//.23-->0.23  
  14.             bcd=0+bcd;  
  15.         }  
  16.         return bcd;  
  17.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void test_getMoneyFromBcd() {  
  3.         String hex = "000000000013";  
  4.         System.out.println(BcdUtil.getMoneyFromBcd(hex));  
  5.     }  

 运行结果:0.13

注意:单位是元。

(3)把金额转化为BCD码

Java代码   收藏代码
  1. /*** 
  2.      * 把金额转化为BCD码,注意:金额的单位是分,不是元. 
  3.      *  
  4.      * @param moneyInt 
  5.      * @return 
  6.      */  
  7.     public static String moneyToBcd(long moneyInt){  
  8.         String moneyBCDStr=String.valueOf(moneyInt);  
  9.         while(moneyBCDStr.length()<12){  
  10.             moneyBCDStr=0+moneyBCDStr;  
  11.         }  
  12.         return moneyBCDStr;  
  13.     }  

 比如把1角2分转化为BCD码:

Java代码   收藏代码
  1. @Test  
  2.     // ok  
  3.     public void test_moneyToBcd() {  
  4.         long money = 12L;  
  5.         System.out.println(BcdUtil.moneyToBcd(money));  
  6.     }  

 运行结果:

000000000012

注意:测试金额的单位是分,不是元。

相关文章
|
5月前
|
缓存 NoSQL Java
你的码有我的码蠢?
你的码有我的码蠢?
41 0
|
Web App开发 编解码 数据建模
FOURCC四字符码对照表
FOURCC四字符码对照表
145 0
|
存储
系统码的编译码与汉明码
系统码的编译码与汉明码
124 0
系统码的编译码与汉明码
BCH码与RS码详解
BCH码与RS码详解
248 0
打印跳4、7的流水码数据
做防伪的朋友经常遇见有些客户比较忌讳4和7在流水号中出现,希望打印流水号的时候跳过去,Label mx 条码软件提供了流水“自定义进制”的功能, 可以完美实现。当然,利用“自定义进制”可以实现任一数字或字母的跳码。
119 0
|
算法 C语言 芯片
【C语言】BCD码、十进制互相转换
【C语言】BCD码、十进制互相转换
668 0