大家好,今天我们来聊聊如何计算姓名中的三才五格,特别是单姓双名的情况。
1、单姓双名的计算方法
天格:天格的计算方式是姓氏的笔画数加1。例如,如果姓氏是“张”,笔画数是11,那么天格就是11+1=12。
人格:人格的计算方式是姓氏的笔画数加上名字第一个字的笔画数。比如,“张”姓加上“宸”字(笔画数10),人格就是11+10=21。
地格:地格的计算方式是名字第一个字的笔画数加上名字第二个字的笔画数。比如,“宸”字(笔画数10)加上“玮”字(笔画数14),地格就是10+14=24。
外格:外格的计算方式是名字第二个字的笔画数加1。例如,“玮”字(笔画数14)加1,外格就是14+1=15。
总格:总格就是所有字的笔画数相加。比如,“张”字(笔画数11)、“宸”字(笔画数10)和“玮”字(笔画数14),总格就是11+10+14=35。
2、五行属性与对应关系
五行属性:五行属性与数字有关,具体对应关系如下:
木:1、2
火:3、4
土:5、6
金:7、8
水:9、0
3、如何取结果末位?
根据上述计算结果,取每个格子的末位数字,对应五行属性。例如,“张宸玮”这个名字的天格是12,取末位2,对应木;人格是21,取末位1,对应木;地格是24,取末位4,对应火。
4、三才结论与吉凶分析
三才结论:根据上述计算结果,可以得出三才结论。例如,“张宸玮”的三才结论是木木火。
吉凶分析:根据三才结论,可以判断吉凶。例如,“木木火”的结论意味着成功顺利,无障碍而向上发达,基础境遇亦安泰,事事顺利,兴盛隆昌,终生得幸福繁荣,身心健泰,保得长寿幸福。【大吉】
5、其他情况
除了单姓双名,还有复姓单名和复姓双名的情况。如果有需要了解这些情况的读者,欢迎留言,我们会继续更新相关内容。
6、示例源码(Java版)
import java.net.URL;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Encoder;
class Demo {
public static String calcAuthorization(String secretId, String secretKey, String datetime)
throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
String signStr = "x-date: " + datetime;
Mac mac = Mac.getInstance("HmacSHA1");
Key sKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), mac.getAlgorithm());
mac.init(sKey);
byte[] hash = mac.doFinal(signStr.getBytes("UTF-8"));
String sig = new BASE64Encoder().encode(hash);
String auth = "{\"id\":\"" + secretId + "\", \"x-date\":\"" + datetime + "\", \"signature\":\"" + sig + "\"}";
return auth;
}
public static String urlencode(Map<?, ?> map) throws UnsupportedEncodingException {
StringBuilder sb = new StringBuilder();
for (Map.Entry<?, ?> entry : map.entrySet()) {
if (sb.length() > 0) {
sb.append("&");
}
sb.append(String.format("%s=%s",
URLEncoder.encode(entry.getKey().toString(), "UTF-8"),
URLEncoder.encode(entry.getValue().toString(), "UTF-8")
));
}
return sb.toString();
}
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
// 腾讯云市场免费申请秘钥
String shop_url = "https://market.cloud.tencent.com/products/42648";
//云市场分配的密钥Id
String secretId = "xxxx";
//云市场分配的密钥Key
String secretKey = "xxxx";
Calendar cd = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String datetime = sdf.format(cd.getTime());
// 签名
String auth = calcAuthorization(secretId, secretKey, datetime);
// 请求方法
String method = "GET";
// 请求头
String uuid = UUID.randomUUID().toString();
Map<String, String> headers = new HashMap<String, String>();
headers.put("request-id", uuid);
headers.put("Authorization", auth);
// 查询参数
Map<String, String> queryParams = new HashMap<String, String>();
queryParams.put("ming","");
queryParams.put("xing","");
// body参数
Map<String, String> bodyParams = new HashMap<String, String>();
String bodyParamStr = urlencode(bodyParams);
// url参数拼接
String url = "https://ap-guangzhou.cloudmarket-apigw.com/services-4mq5lolqo/bazi/xingming";
if (!queryParams.isEmpty()) {
url += "?" + urlencode(queryParams);
}
BufferedReader in = null;
try {
URL realUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.setRequestMethod(method);
// request headers
for (Map.Entry<String, String> entry : headers.entrySet()) {
conn.setRequestProperty(entry.getKey(), entry.getValue());
}
// request body
Map<String, Boolean> methods = new HashMap<>();
methods.put("POST", true);
methods.put("PUT", true);
methods.put("PATCH", true);
Boolean hasBody = methods.get(method);
if (hasBody != null) {
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setDoOutput(true);
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(bodyParamStr);
out.flush();
out.close();
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
String result = "";
while ((line = in.readLine()) != null) {
result += line;
}
System.out.println(result);
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
7、示例源码(PHP版)
<?php
// 腾讯云市场免费申请秘钥
$shop_url = "https://market.cloud.tencent.com/products/42648";
// 云市场分配的密钥Id
$secretId = 'xxxx';
// 云市场分配的密钥Key
$secretKey = 'xxxx';
// 签名
$datetime = gmdate('D, d M Y H:i:s T');
$signStr = sprintf("x-date: %s", $datetime);
$sign = base64_encode(hash_hmac('sha1', $signStr, $secretKey, true));
$auth = sprintf('{"id": "%s", "x-date": "%s" , "signature": "%s"}', $secretId, $datetime, $sign);
// 请求方法
$method = 'GET';
// 请求头
$headers = array(
'Authorization' => $auth,
);
// 查询参数
$queryParams = array (
'ming' => '',
'xing' => '',
);
// body参数(POST方法下)
$bodyParams = array (
);
$sendData = http_build_query($queryParams);
// url参数拼接
$url = 'https://ap-guangzhou.cloudmarket-apigw.com/services-4mq5lolqo/bazi/xingming';
if (count($queryParams) > 0) {
$url .= '?' . http_build_query($queryParams);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, array_map(function ($v, $k) {
return $k . ': ' . $v;
}, array_values($headers), array_keys($headers)));
if (in_array($method, array('POST', 'PUT', 'PATCH'), true)) {
curl_setopt($curl, CURLOPT_HTTPHEADER, array('application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $sendData);
}
$data = curl_exec($ch);
if (curl_errno($ch)) {
echo "Error: " . curl_error($ch);
} else {
print_r($data);
}
curl_close($ch);
希望这篇文章能帮助大家更好地理解姓名三才五格的计算方法!如果有任何疑问,欢迎随时留言讨论!