밀리 초
현재의 시간을 읽는 것 외에도 프로세싱의 모든 프로그램은 프로그램 시작 이후의 시간을 측정한다. 이 시간은 밀리 초 (1,000분의 1초)의 단위로 저장된다. 예를 들어 2천 밀리 초는 2초이고 200 밀리 초는 0.2초다. 이 측정값은 milis() 함수를 이용해 얻을 수 있고 사건을 만들거나 시간의 흐름을 측정할 수 있다. 다음 예시는 milis() 함수를 이용해 프로그램 시작 3초 후, 선을 움직이는 코드다.
int x = 0;
void setup () {
size (100, 100);
void setup() {
size(100, 100);
nextTime = millis() + timer;
noFill();
stroke (255);
}
void draw() {
background(O);
if (mode == 0) {
line(10, 10, 90, 90);
} else if (mode == 1) {
ellipse(50, 50, 80, 80);
} else if (mode == 2) {
rect(10, 10, 80, 80);
}
if (millis ( ) > nextTime) {
mode++;
if (mode > 2) {
mode = 0;
}
nextTime = millis() + timer;
}
}
millis() 함수는 int를 반환하지만 프로그램이 이 값을 시작한 후 지나간 초를 나타내는 Aot로 변환하는 것이 나을 경우 도 있다. 이 변환의 결과물은 애니메이션에서 밀리 초보다 짧은 시간 동안 발생하는 사건의 순서를 조정하는 데 사용될 수 있다.
int x = 0;
void setup() | size (100, 100);}
void draw() {
float sec = millis () / 1000.0;
if (sec > 3.0) {
x++;
}
line(s, 0, x, 100);
}
날짜
날짜 정보는 시간 데이터와 비슷한 방법으로 읽을 수 있다. 오늘 날짜는 day() 함수를 사용하며 1~31의 값을 반환한다.
현재 달의 정보는 month() 함수로 읽으며 10 1월, 601 6원, 127 12원을 지칭하는 1~12 범위의 값을 반환한다. 현재 연도 정보는 year() 함수로 읽으며 현재 연도의 4자리 정수 값을 반환한다. 이 프로그램을 실행해 콘솔을 이용해 현재의 날짜 정보 를 보자.
int d = day(); // Returns values from 1 to 31
int m = month(); // Returns values from 1 to 12
int y = year(); // Returns four- digit year (2007, 2008, etc.)
printin(y + "" + m + "" + d);
다음 예시는 지속적으로 실행되어 달의 첫 날인지 확인한다. 만약 달의 첫 날이 맞으면 콘솔에는 “새로운 달로 온 용합니다! Welcome to a new month!” 메시지가 표시된다.
void draw() {
int d = day(); // Values from 1 to 31
if (d == 1) {
printin("Welcome to a new month!");
}
}
다음 예시는 이전 예시와 비슷하지만 month() 함수까지 추가되어 오늘이 새해 첫날인지 확인한다. 만약 맞다면 “오늘은
1년의 첫 날입니다! Today is the first day of the year!” 메시지가 콘솔에 표시된다.
void draw() {
int d = day();
/Values from 1 to 31
int m = month(); // Values from 1 to 12
if ((d == 1) && (m == 1)) |
printIn("Today is the first day of the year!");
}
}