Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 21:42   #1
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию PHP скрипт с временем

Уважаемые форумчане помогите справиться с задачей которая есть у меня в лабораторной. Как свойственно для всех универов давать лабы с непонятно каким вспомогательным материалом что студенты не могут решить свою задачу, так как я только начал изучать ПХП мне нифига не понятно в этом задании:
Создать РНР-скрипт, позволяющий определить и вывести на экран, сколько времени прошло с начала текущей пары. Использовать массивы, а также функцию date(). Вывод организовать в таком виде: «Прошло 15 мин. пары».
Я уверен что это легкое задание но не понятное для меня. Огромнейшая просьба показать пример этого задания с подробными коментами.
megostudent вне форума Ответить с цитированием
Старый 22.09.2011, 00:28   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Ну так почитайте мануал по функции date на php.net
motorway вне форума Ответить с цитированием
Старый 22.09.2011, 04:55   #3
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

делать вместо тебя никто не будет, как минимум потому, что это непедагогично - и сам ничему не научишься, и могут пострадать люди, которые примут тебя за программиста, когда ты закончишь учебу
первое чему нужно научиться - это понимать суть задачи и составлять алгоритм (как в школе - блок-схема, ромбики, квадратики), второе - элементарные навыки гугления (когда у тебя будет составлен алгоритм, ты сразу будешь понимать что искать).

с алгоритмом я тебе помогу:
1.создаем массив с временем начала каждой из пар (гуглим array(), время предлагаю хранить в формате 10:00). если время не по порядку возрастания указывать в массиве, тогда гуглим функцию sort() - это упростит дальнейшую обработку.
2.вычисляем текущее время (функция date(), так же гугль в помощь).
3.нужно определить от какого времени в массиве будем отталкиваться, то есть если в массиве есть 9:30, 10:10, 11:00, 12:30, 13:50, а сейчас 11:25, значит нам надо оттолкнуться от 11:00. способов сделать это немеряно, как вариант - пройти циклом по массиву, сравнивая каждый элемент с текущим временем и если он меньше, заносить его в некую переменную $tmp, а если больше, тогда ничего не заносим в $tmp и останавливаем цикл (в $tmp останется последнее найденное время).
цикл - функции foreach(), for(), while() - какая больше нравится.
остановить цикл - break.
для преобразования времени в целое число (чтобы математические операции применить), сгодится функция explode() - она разделит часы и минуты, а затем умножаем часы на 60, добавляем минуты и полученное число готово для сравнения.
4.остается только отнять $tmp от текущего времени и получим разницу в минутах, округляем (функция floor()).
5.выводим результат с помощью echo.

твоя задача - составить блок-схему по моему алгоритму, чтобы проще было воспринимать визуально, прогуглить функции, чтобы определить их синтаксис, составить программу.
когда подготовишь код, тогда тебе кто-нить поможет устранить ошибки.
Все генитальное просто.

Последний раз редактировалось kirosin; 22.09.2011 в 09:27.
kirosin вне форума Ответить с цитированием
Старый 22.09.2011, 08:27   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от kirosin Посмотреть сообщение
(гуглим array(), время предлагаю хранить в формате 10:00)
Удобней было бы работать с integer-ом и сразу хранить время в минутах 10*60+15 (для 10:15, напр.) - удобней для хранения и организации циклов сравнения.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 22.09.2011, 09:33   #5
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Удобней было бы работать с integer-ом и сразу хранить время в минутах 10*60+15 (для 10:15, напр.) - удобней для хранения и организации циклов сравнения.
удобнее, но из нескольких десятков преподов по программированию, которых я знал, лучше меня разбирались только трое, остальные смотрят как бараны в код и объяснить что 615 означает 10:15 можно не каждому. самые извращенные душегубы требуют делать так, чтоб им понятно было.
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Старый 22.09.2011, 17:48   #6
megostudent
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 320
По умолчанию

PHP код:
<?php
echo "hasda <br>" ;
$a=date('Gi'); 
echo 
"$a<br>";
$m[0]=800;
$m[1]=935;
$m[2]=1110;
$m[3]=1245;
$m[4]=1405;
$m[5]=1520;
$m[6]=1655;
if (
$a<935 and $a>800)  {echo $c$a-$m[0];} 
if (
$a<1110 and $a>935)  {echo $c$a-$m[1];}
if (
$a<1245 and $a>1110)  {echo $c$a-$m[2];}
if (
$a<1405 and $a>1245)  {echo $c$a-$m[3];}
if (
$a<1520 and $a>1405)  {echo $c$a-$m[4];}
if (
$a<1655 and $a>1520)  {echo $c$a-$m[5];}
if (
$a<2459 and $a>1655)  {echo $c$a-$m[6];}
echo 
"<br> proshlo $c min pari";
?>
kirosin на те по весам!
megostudent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт на PHP Димы4 Помощь студентам 3 23.06.2008 09:30