Skip to content

Instantly share code, notes, and snippets.

@chiyoyo
chiyoyo / DateTimeJp.php
Last active June 17, 2019 02:10
PHPで和暦・日本語曜日を使う DateTime拡張版 ref: https://qiita.com/chiyoyo/items/3d12e5b1ef63e7f332ba
<?php
namespace MyLibrary;
/**
* 日本語対応DateTime拡張クラス
*
* 元号、曜日などの日本語表記に対応したDateTime拡張クラス
*
* @version 1.0.2
* @author chiyoyo
CREATE TABLE `prefecture` (
`id` tinyint(3) unsigned NOT NULL,
`name` varchar(255) DEFAULT NULL,
`name_kana` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
);
@chiyoyo
chiyoyo / public_holiday.php
Last active June 17, 2019 02:18
祝日を自動判定するDateTime拡張クラス ref: https://qiita.com/chiyoyo/items/539dc2840a1b70a8e2c3
<?php
/**
* 祝日かどうか判定できるDateTime拡張クラス
* usage: $holidayDateTime->holiday();
*/
class HolidayDateTime extends DateTime
{
/** 祝日一覧 */
// 種別:
// fixed=日付固定
@chiyoyo
chiyoyo / TreeNode.php
Last active April 26, 2016 16:30
汎用ツリー構造クラスを作ってみた ref: http://qiita.com/chiyoyo/items/f06e4d3f3e39d4238bca
/**
* 汎用ツリー構造クラス
*/
<?php
class TreeNode
{
/** 本オブジェクトの親要素 */
private $parent;
/** 本オブジェクトの子要素 */
@chiyoyo
chiyoyo / round.js
Last active June 17, 2019 02:15
小数点以下X桁を指定して四捨五入 ref: http://qiita.com/chiyoyo/items/eac6d7cb4d3d6a6ab3fb
/**
* 小数点以下の桁数
* @param {double} 数値
* @param {integer} 小数点以下の桁数(省略可能)
* @return {double} 四捨五入した値
*/
Math.round = function (round_original) {
return function (number, pricision) {
var _pow;
switch (arguments.length) {
@chiyoyo
chiyoyo / NumberFormat.js
Last active June 2, 2017 02:31
サイズをKBやMB、数を万や億などに変換する ref: http://qiita.com/chiyoyo/items/997bbdfca318fe666c93
/**
* 小数点指定できる四捨五入
* http://qiita.com/chiyoyo/items/eac6d7cb4d3d6a6ab3fb
*/
Math.round = function (round_original) {
return function (number, pricision) {
var _pow;
switch (arguments.length) {
case 1:
return round_original(number);
@chiyoyo
chiyoyo / file0.txt
Last active September 17, 2018 10:37
TreasureDataのレコード数の整理をした備忘録 ref: https://qiita.com/chiyoyo/items/182c41a88a6da3ef33a9
#!/bin/bash
##########
# TDのテーブルを作成日時を見て削除していくバッチ
# 要jq:https://stedolan.github.io/jq/
##########
##### 設定する場所
# 残しておく期間
EXPIRE_DAY=30
# TD API KEY
@chiyoyo
chiyoyo / file0.sql
Last active May 13, 2020 01:10
緯度経度から1/8(6次)メッシュを求めるSQL ref: https://qiita.com/chiyoyo/items/993580aa390e38c9e05b
CASE
-- 日本の座標の場合のみメッシュ変換をかける
WHEN 20.3 <= TRY_CAST(latitude AS DOUBLE) AND TRY_CAST(latitude AS DOUBLE) <= 45.6 AND 122 <= TRY_CAST(longitude AS DOUBLE) AND TRY_CAST(longitude AS DOUBLE) <= 154 THEN
CONCAT(
-- 1次メッシュ
TRY_CAST(TRY_CAST(FLOOR(TRY_CAST(latitude AS DOUBLE)*1.5) AS BIGINT) AS VARCHAR),
TRY_CAST(TRY_CAST(FLOOR(TRY_CAST(longitude AS DOUBLE))-100 AS BIGINT) AS VARCHAR),
-- 2次メッシュ
TRY_CAST(TRY_CAST(FLOOR(MOD(TRY_CAST(latitude AS DOUBLE)*60,40)/5) AS BIGINT) AS VARCHAR),
TRY_CAST(TRY_CAST(FLOOR(MOD(TRY_CAST(longitude AS DOUBLE)-100,1)*60/7.5) AS BIGINT) AS VARCHAR),
@chiyoyo
chiyoyo / HybenysDistanceFormula.php
Last active August 6, 2023 01:28
Hybeny's Distance Formula
/**
* 2地点間の距離(m)を求める
* ヒュベニの公式から求めるバージョン
*
* @param float $lat1 緯度(始点)
* @param float $lon1 経度(始点)
* @param float $lat2 緯度(終点)
* @param float $lon2 経度(終点)
* @param boolean $mode 測地系 true:世界(default) false:日本
* @return float 距離(m)
@chiyoyo
chiyoyo / spherical_trigonometry.php
Last active August 6, 2023 01:27
spherical trigonometry
/**
* 2地点間の距離を求める
* GoogleMapAPIのgeometory.computeDistanceBetweenのロジック
* 浮動小数点の精度が足りないためGoogleより桁数が少ないかもしれません
*
* @param float $lat1 緯度(始点)
* @param float $lon1 経度(始点)
* @param float $lat2 緯度(終点)
* @param float $lon2 経度(終点)
* @return float 距離(m)