✨Iso 6346

Iso 6346

nhỏ|Mã BIC ở cuối một [[Côngtenơ hóa|Container]] ISO 6346 là một chuẩn quốc tế quy định để mỗi số Container là duy nhất.

Chuẩn này được quy định và quản lý bởi International Container Bureau (BIC)

Thống nhất hệ thống

Ví dụ về một số Container đúng chuẩn ISO 6346

Example of an ISO 6346 conform container number

Trong đó:

  • CSQ là tên chủ sở hữu Container (hãng tàu)
  • U là phần danh mục thiết bị. Có 03 chữ: U: tất cả container nói chung; J: các container có thể tháo lắp; Z: dành cho Moors và Chassis
  • 305438 là phần số được cấp phát bởi hãng tàu và là duy nhất.
  • 3 là con số cuối cùng dùng để kiểm tra số container có đúng chuẩn ISO 6346 (check digit).

Quy tắc tính số Check Digit

  • Tách số Cont (11 số) thành 02 phần: 10 ký tự đầu + số cuối cùng
  • Tính toán 10 ký tự đầu => số Check Digit so sánh với số cuối cùng, nếu trùng nhau => hợp chuẩn ISO 6346 Ví dụ: Ta có số Cont: CSQU3054383

Ta sẽ tách 10 ký tự đầu: CSQU305438 để tính toán => số Check Digit

Nếu số Check Digit = 3 + đúng chuẩn ISO 6346.

Các chữ cái tương ứng với các con số trong bảng sau:

Như vậy trong ví dụ trên số Cont: CSQU305438 sẽ có Check Digit = 3

Một số giải thuật tính số Check Digit trong lập trình

Visual Basic (VBA)

Function ISO6346Check(k As String) ' Calculates the ISO Shipping Container Check Digit Dim i%, s& Application.Volatile For i = 1 To 10 s = s + IIf(i < 5, Fix(11 * (Asc(Mid(k, i)) - 56) / 10) + 1, Asc(Mid(k, i)) - 48) * 2 ^ (i - 1) Next i ISO6346Check = (s - Fix(s / 11) * 11) Mod 10 End Function

Java Script

function ISO6346Check(con) { if (!con || con == "" || con.length != 11) { return false; } con = con.toUpperCase(); var re = /^[A-Z]{4}\d{7}/; if (re.test(con)) { var sum = 0; for (i = 0; i < 10; i++) { var n = con.substr(i, 1); if (i < 4) { n = "0123456789A?BCDEFGHIJK?LMNOPQRSTU?VWXYZ".indexOf(con.substr(i, 1)); } n *= Math.pow(2, i); //2的i次方 sum += n; } if (con.substr(0, 4) == "HLCU") { sum -= 2; } sum %= 11; sum %= 10; //余数为10的取0 return sum == con.substr(10); } else { return false; //不匹配正则表达式 } }

PHP

function checkDigit($mark){ $char2num = ['A'=>10, 'B'=>12, 'C'=>13, 'D'=>14, 'E'=>15, 'F'=>16, 'G'=>17, 'H'=>18, 'I'=>19, 'J'=>20, 'K'=>21, 'L'=>23, 'M'=>24, 'N'=>25, 'O'=>26, 'P'=>27, 'Q'=>28, 'R'=>29, 'S'=>30, 'T'=>31, 'U'=>32, 'V'=>34, 'W'=>35, 'X'=>36, 'Y'=>37, 'Z'=>38];
$acc=0;
$num=str_split($mark);
for($i=0;$i<10;$i++){
    if($i<4) $acc+=($char2num[$num[$i]]*pow(2,$i));
    else $acc+=$num[$i]*pow(2,$i);
}
$rem = $acc % 11;
if ($rem == 10) $rem = 0;
if(strlen($mark)==11 && $num[10]==$rem) return true;
return false;

}

👁️ 1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
nhỏ|Mã BIC ở cuối một [[Côngtenơ hóa|Container]] **ISO 6346** là một chuẩn quốc tế quy định để mỗi số Container là duy nhất. Chuẩn này được quy định và quản lý bởi International Container Bureau
thumb|Chiếc container vận chuyển dài . Ở mỗi trong tám góc của nó, có một phần quan trọng được gọi là [[twistlock|corner casting để có thể kéo lên, xếp chồng và cố định.]] thumb|Các container