MENU

株 覚書

株 重要単語覚書

PER
株価収益率
時価総額÷純利益
15倍以下なら割安
PERとは「今の株価が1株当たりの純利益率の何倍か」を表す

PBR
株価純資産倍率
株価÷BPS(1株当たりの株主資本)
1倍以下なら割安
会社の一株当たりの純資産と現在の株価とを比較してPBRが1倍なら株価が1株当たり純資産と同額ということ
これを下回った場合で会社を売却すれば利益になるため1倍以下の企業は割安である

BPS
株主資本÷発行済み株式数

unityのイベントリスナーにメソッド、プロパティを指定する

インスペクターから値を設定できるのは

  • staticでない
  • publicである
  • consutでない

プロパティ

int型 スライダー発火でtrue インスペクターで設定された値が初期化

float型 dynamic 可変するみたい。 0~1までのスライダーの位置を正規化された値を初期化

メソッド unityAction型 引数 float型 1つ スライダーの値を正規化されたものが引数に初期化される

注意*

aプロパティは画像では0だが5に入れなおしている
staticなどはシリアライズしてもインスペクターから値を変更できない




String peace = "azatoi";using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class slidervalue : MonoBehaviour {

	public int test ;
	[SerializeField]
	public static int ArrayCount ;

	public Slider slider;

	public float SliderValue{ get; set; }

	public int a{ get; set ;} 

	public Text[] text = new Text[ArrayCount];

	public static string s = "0";

	public void ChangeValue(float value){

		s = ((int)(Mathf.Lerp (1, 10, value))).ToString ();
		Debug.Log (a);

	}
		

	// Use this for initialization
	void Start () {

		for (int i= 0; i<text.Length ; i++){

			text[i] = text[i].GetComponent<Text> ();
		}

	}
	
	// Update is called once per frame
	void Update () {
		text[0].text = s;
		text [1].text = a.ToString();
		text [2].text = SliderValue.ToString();
		//Debug.Log ((int)SliderValue);

	}
}

unityのTime.deltaTimeを使ってミリ秒を計測する

こんにちわ。
ちょっとunityで時間計測プログラムを作りたいと思いまして、いろいろ調べていたのですが
↓こちらの方のやり方がスマートだと思い参考にして作ってみたのですが
blog.livedoor.jp

ミリ秒を計測することができないなぁと思いましてじゃあ作ろう!と思い作ったのがこちら

f:id:saigonitoride:20171001150719g:plain


しかしこれ若干てまどいまして
Time.deltaTimeはミリ秒まで返すということが書いてあり
コンソールで確認してみたら
0.2
0.4
0.37333333
ってなってたんでミリ秒じゃなくてμ秒????って思ったんですけど(
返す値は秒でした・・・・
つまり0.2秒 0,4秒 0.37秒・・・という風に返ってくるわけですね。
返すのは最高でミリ秒μ秒?まで(だってこここで3333μ秒まででてるし)正確に計算できて返す単位は秒というわけだと勝手に解釈しています。

まぁミリ秒なんて計測しても意味ないんだけどね(笑)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;[f:id:saigonitoride:20170903214157g:plain]

public class UI : MonoBehaviour {

	float time;
	Text text;

	void Start () {	
		time = 0;
		text = GetComponent<Text>();
	}

	void Update () {
		time += Time.deltaTime;//毎フレームの時間を加算.
		int minute = (int)time/60;//分.timeを60で割った値.
		int second = (int)time%60;//秒.timeを60で割った余り.
		int msecond = (int)(time*1000%1000);
		string minText, secText, msecText;//分・秒を用意.
		if (minute < 10)
			minText = "0" + minute.ToString();//ToStringでint→stringに変換.
		else
			minText = minute.ToString();
		if (second < 10)
			secText = "0" + second.ToString();//上に同じく.
		else
			secText = second.ToString();

		if (msecond < 10)
			msecText = "000" + msecond.ToString ();

		else if(msecond < 100)
			msecText = "00" + msecond.ToString ();

		else if(msecond < 1000)
			msecText = "0" + msecond.ToString ();

		else 
			msecText = msecond.ToString ();
		

		text.text = "[Time] " + minText + ":" + secText + ":" + msecText ;

		Debug.Log (time);
	}
}

うるう年を判定するプログラム 解説有

宿題とかでうるう年を判定するプログラムを書くときあると思います。

うるう年は4で割り切れ100で割り切れず400で割り切れます。

なぜこのような計算をするのか

地球の公転周期は365.2422日となっており、一年が365日だとすると、4年で約1日(0.2422×4=0.9688日)のズレが出るので
4年に一回一日分減らす

しかし、厳密には4年に一度調整するこの「一日」は実際には0.9688日なので、0.0312日の誤差が生じてしまう

そこでさらに、この0.0312日を調整するために、400年で3日(0.0312×100=3.12日)をうるう年にしない年とすることで解消する。

その解消する年を100で割り切れる年としたのだが、100年毎に平年としてしまうと、400年に3日調整するところを、4日と一日多く調整してしまう。

そこで400年ごとにうるう年を設けた。

ということですね。

うるう年については
うるう年は400年に何回ある? | 雑学 | Ofee
↑ここを参考にしました。

using System;

public class Hantei
{

public bool uruudoshi ;

  public static void Main(string[] args)
  {
    ////ここに判定したい年を入力
     uruudoshi = Hantei(2020);

 Console.Write("{0}。\n", uruudoshi);


  }

public bool Hantei(int y){

		if (y % 4 == 0) {

			if (y % 100 != 0) {

				return true;

			} else {

				if (y % 400 == 0) {

					return true;

				} else {

					return false;

				}
			}
		}else{
					return false;

			}		

	}
}

これでもいいけどね

public bool Hantei(int y){

return y%4 == 0&&(y%100 !=0 ||y&400==0);
}

InputFieldコンポーネントについて

卒研でunity使うことになってるので仕方なく
unityをいじっているのですが・・・
inputFieldコンポーネントを使う可能性があるのでメモ書き程度に

inputFieldにはなんかたくさんのめそっどとかありますね
もともとJava専なのでC#のデリゲードとか、get setとかよくわからないの使わなくちゃコード読めない・・・泣



さてonValidateInputですが

void Start () {
		Debug.Log("text");


		inputField.onValueChange.AddListener(OnValueChange);
		inputField.onEndEdit.AddListener(OnSubmit);

		inputField.onValidateInput = (string text, int charIndex, char addedChar)=>{
			// アルファベット小文字が入力されたら大文字にする
			char ret = addedChar;
			/*if(addedChar >= 'a' && addedChar <= 'z')
			{
				ret = (char)(addedChar + ('A' - 'a'));
			}
*/
			Debug.Log(text);
			Debug.Log(charIndex);
			Debug.Log(addedChar);
			return ret;
		};
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	public void OnValueChange(string value)
	{
		Debug.Log("Input Field value is " + value);
	}

	public void OnSubmit(string value)
	{
		Debug.Log("Submit value is " + value);
	}

こうかくと↓になるんですけど

f:id:saigonitoride:20170903214157g:plain

なにこれ・・・・全角いれると反映されない・・・

onValueChangeはイベントらしですね
あともう一個のほうも
とりあえずaddlistenerでやりたいメソッドをぶち込んどいて

で肝心の意味不明なコレ
inputField.onValidateInput

なんかプロパティっていうらしい
ラムダ式で匿名メソッドいれてるし・・
charを返すデリゲードって書いてあったけど
デリゲード自体実装を持ってるわけじゃないし
意味わからん・・・・・・